Я посмотрел здесь: массив в таблицу с 5 ячейками в каждой строке
но я не могу адаптировать свой код.
Мне нужно отобразить результаты массива php в таблице. В таблице должно быть 3 ячейки для каждой строки.
Я не знаю, как выводить и каждую третью строку, и я не знаю, как выводить последнее, если таблица содержит несколько записей, которые не кратно 3.
Вот мой код:
echo "<table>"; $num=mysql_numrows($result1); $i=0; while ($i < $num) { $aaa=mysql_result ($result1,$i,"aaa"); $bbb=mysql_result ($result1,$i,"bbb"); echo " <td>$aaa $bbb</td> "; $i++; } echo "</table>";
используйте оператор mod% для проверки третьего элемента. например
if($i%3 == 0) { // this is the third element, start a new tr here }
Чтобы добиться чего-то подобного:
Вы можете легко сделать вещи настраиваемыми, объединив их в свой собственный iterator
, который предоставляет строки и столбцы:
/** * function to fetch one row from database */ function fetch_row($resultSet = NULL) { static $result; static $i = 0; if ($resultSet) { $result = $resultSet; return; } return mysql_fetch_assoc($result); } fetch_row($result1); // initialize fetch function $it = new FetchIterator('fetch_row'); $table = new TableIterator($it, 5); if ($table->valid()) : ?> <table border="1"> <?php foreach ($table as $row => $columns) : ?> <tr class="<?php echo $row % 2 ? 'odd' : 'even'; ?>"> <?php foreach ($columns as $index => $column) : ?> <td> <?php if ($column) echo $column['aaa'], ' ', $column['bbb']; ?> </td> <?php endforeach; ?> </tr> <?php endforeach; ?> </table> <?php endif;
Некоторые демо и посмотреть, а также некоторые PHP Итератор Fun .
Попробуй это
echo "<table><tr>"; $num=mysql_numrows($result1); $i=0; while ($i < $num) { $aaa=mysql_result ($result1,$i,"aaa"); $bbb=mysql_result ($result1,$i,"bbb"); if($i %3 ==0) { echo"</tr><tr><td> $aaa $bbb </td>"; } else { echo"<td> $aaa $bbb </td>"; } $i++; } echo "</tr></table>";