Создание динамической таблицы с PHP - PullRequest
5 голосов
/ 25 октября 2011

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

12 голосов
/ 25 октября 2011
$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>
2 голосов
/ 25 октября 2011
$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>";
...