Создание динамической таблицы с помощью 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;

Этот код создает одну строку. Я не могу думать о том, как я может получить несколько строк...!!

Author: Brian Tompsett - 汤莱恩, 2011-10-25

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>&nbsp;</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>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;<td>
    </tr>
</table>
 12
Author: Jules, 2011-10-25 11:20:43
$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>";
 2
Author: Tom, 2011-10-25 07:22:42