Динамическое создание строк и столбцов с помощью PHP и HTML

Я хочу создать динамические строки и столбцы с помощью PHP и HTML, но я немного смущен этим кодом, поэтому определенная помощь определенно оценена.

<table> <?php $tr = 0; foreach ($data as $db_data) { $tr++; if ($tr == 1) { echo "<tr>"; } echo "<td>"; echo $db_data['id']; echo "</td>"; } if($tr == 2){ } ?> </table> 

Сценарий настолько прост:

Данные Mysql возвращают 6 нет записей из цикла for-each, результат будет показан как это изображение

введите описание изображения здесь

Точно так же данные Mysql возвращают 3 нет записей, результат будет показан как это изображение

введите описание изображения здесь

Что-то вроде этого, может быть,

функция create_table ()

 function create_table($data) { $res = '<table width="200" border="1">'; $max_data = sizeof($data); $ctr = 1; foreach ($data as $db_data) { if ($ctr % 2 == 0) $res .= '<td align="center">' . $db_data['id']. '</td></tr>'; else { if ($ctr < $max_data) $res .= '<tr><td align="center">' . $db_data['id']. '</td>'; else $res .= '<tr><td colspan="2" align="center">' . $db_data['id']. '</td></tr>'; } $ctr++; } return $res . '</table>'; } 

Конечно, вы можете изменить стиль таблицы в соответствии с вашими потребностями.

Назовите это так:

 echo create_table($data); 

Вывод

(пример для 7, 4, 3 и 8 id ) введите описание изображения здесь

Он возвращает таблицу с таким же количеством строк в каждом столбце, если вы передаете четное количество идентификаторов или таблицы, где последняя строка объединена, если вы передаете нечетное число id в функцию.

Используйте оператор% php (остаток деления), чтобы разбить строки, где вам нужно

Сделайте что-то вроде этого:

  foreach ($data as $ord => $db_data) { if (($ord == count($data) - 1) && (count($data) % 2)) { // Do a colspan of 2, as it is the last item (first clause) // and there are an odd number of items (second clause) } } 

Я думаю, вы должны попробовать сделать это в цикле while. например

 $sql = your.sql.query; $row = mysql_query($sql); $result = mysql_fetch_arrey($row) <table> while($row!=0) { echo " <tr> // number of <td> you need according to your data return in the query: <td>$result['column']</td> <td>$result['column']</td> </tr> "; } 

если я понимаю, что вы пытаетесь сделать.