Создание динамической таблицы с помощью PHP
Я пытаюсь создать динамическую таблицу с помощью PHP. У меня есть страница, на которой отображаются все фотографии из базы данных. Мне нужно, чтобы таблица состояла только из 5 столбцов. Если будет возвращено более 5 изображений, он должен создать новую строку, и отображение остальных изображений будет продолжено.
Кто-нибудь может, пожалуйста, помочь?
Коды идут здесь: Код на главной странице:-
<table>
<?php
$all_pics_rs=get_all_pics();
while($pic_info=mysql_fetch_array($all_pics_rs)){
echo "<td><img src='".$pic_info['picture']."' height='300px' width='400px' /></td>";
}
?>
</table>
Функция get_all_pics():
$all_pics_q="SELECT * FROM pics";
$all_pics_rs=mysql_query($all_pics_q,$connection1);
if(!$all_pics_rs){
die("Database query failed: ".mysql_error());
}
return $all_pics_rs;
Этот код создает одну строку. Я не могу думать о том, как я может получить несколько строк...!!
2 answers
$maxcols = 5;
$i = 0;
//Open the table and its first row
echo "<table>";
echo "<tr>";
while ($image = mysql_fetch_assoc($images_rs)) {
if ($i == $maxcols) {
$i = 0;
echo "</tr><tr>";
}
echo "<td><img src=\"" . $image['src'] . "\" /></td>";
$i++;
}
//Add empty <td>'s to even up the amount of cells in a row:
while ($i <= $maxcols) {
echo "<td> </td>";
$i++;
}
//Close the table row and the table
echo "</tr>";
echo "</table>";
Я еще не проверял это, но мое дикое предположение - что-то в этом роде. Просто просмотрите свой набор данных с изображениями и, пока вы еще не сделали 5 <td>
, добавьте одно. Как только вы достигнете 5, закройте строку и создайте новую строку.
Предполагается, что этот скрипт даст вам что-то вроде следующего. Очевидно, это зависит от того, сколько у вас изображений, и я предположил, что 5 (определено в $maxcols) - это максимальное количество изображений, которые вы хотите отобразить в ряд.
<table>
<tr>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
</tr>
<tr>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td> </td>
<td> </td>
<td> <td>
</tr>
</table>
$max_per_row = 5;
$item_count = 0;
echo "<table>";
echo "<tr>";
foreach ($images as $image)
{
if ($item_count == $max_per_row)
{
echo "</tr><tr>";
$item_count = 0;
}
echo "<td><img src='" . $image . "' /></td>";
$item_count++;
}
echo "</tr>";
echo "</table>";