0
Я пытаюсь создать динамическую таблицу html при запросе БД с помощью PHP. Мне сложно понять, как добавить к нему два разных цикла, чтобы гарантировать, что таблица, которую я хочу создать, генерируется правильно.Динамическое создание HTML-таблицы с PHP
<table><tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr>
<tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr>
<tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr></table>
<hr>
<table><tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr>
<tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr>
<tr>
<td>$ID and $ITEM_NAME</td>
<td>$ID and $ITEM_NAME</td>
</tr></table>
<hr>
Как вы можете видеть, что я должен добавить две строки на сумму информации в одно HTML строку таблицы и на 3-й строке, мне нужно добавить в
и создать новый HTML-таблицу, продолжая мой запрос.
В настоящее время мой PHP-код выглядит примерно так.
foreach($item_ID as $x => $x_value) {
$sql = "SELECT item_name FROM item_table WHERE id = '$x_value'";
$query = $this -> db -> query($sql);
foreach($query->result() as $row){
$item_name = $row->item_name;
}
$html_output .= '<tr><td>';
$html_output .= $x_value. " ".$item_name;
$html_output .= '</td>';
//Not sure how to proceed with closing the rows and opening new one on 3rd query item?
}
Обратите внимание, что я использую Codeigniter, однако я просто ищу некоторую помощь в логике.
Сообщите мне, если я могу помочь разобраться.
Спасибо, что нашли время, чтобы прочитать это. Любая помощь будет принята с благодарностью.
использовать счетчик строк и modulo, чтобы у вас было что-то вроде '$ html_output. = $ IRowCounter% 2 == 0? "
ответ
Во-первых, сделать только один запрос:
Установить счетчик
Затем запустите ваш стол код
Теперь цикл по результатам, создать строки и ищите этот счетчик
$i % 2 == 1
часть начинает новую строку таблицы перед каждым нечетным элементом (1, 3, 5, ...).Часть
$i % 2 == 0
заканчивает строку таблицы после каждого элемента (2, 4, 6, ...).Часть
$i % 6 == 0
добавляет строку после каждой третьей строки (фактически после каждого шестого элемента, и поскольку в ней есть два элемента в строке, это после трех строк).Наконец-то закройте стол, но сначала проверьте, есть ли у нас четное количество предметов. Если нет, добавьте пустую ячейку таблицы.
источник
2014-12-03 17:07:24 Paul
Эй, Пол, что-то не так с вашим запросом? синтаксис кажется выключен. – BaconJuice
Вы правы, пропустили одну цитату, исправленную сейчас. – Paul
Я только что заметил что-то еще. Одна часть моего требования заключалась в том, что он также показывает два элемента в строке. Вышеприведенный код выводит один элемент для каждой строки. Еще раз спасибо. Мне нравится идея одного запроса! Хотите узнать, можете ли вы мне помочь со вторым требованием? – BaconJuice
Чтобы перефразировать, похоже, что вы хотите создать новую таблицу с каждой нечетной строкой. Кроме того, вы хотите разделить таблицы с тегом HR.
источник
2014-12-03 17:08:18 faerysteel
Hi faerysteel, код выше пропустил одну часть моего требования, когда мне нужно вывести 2 элемента в
Просьба пояснить: Для каждого двух результатов есть одна строка. Тогда для каждой из двух строк есть одна таблица. Верный? Почему вы разбиваете строки на несколько таблиц? Почему вы помещаете несколько элементов данных ($ ID и $ ITEM_NAME) в каждую ячейку и почему две из этих строк? Кажется, это злоупотребление таблицами. Что именно вы пытаетесь достичь? Вероятно, есть лучший способ. – faerysteel
Смежные вопросы