Я пытаюсь сделать динамическую таблицу с 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;
Этот код создает одну строку. Я не могу придумать, как я могу получить несколько строк … !!
$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>";