5

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;

このコードは単一の行を作成しています。複数の行を取得する方法が思いつかない...!!

4

2 に答える 2

12
$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>1つ追加します。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>
于 2011-10-25T07:23:04.160 に答える
2
$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>";
于 2011-10-25T07:22:42.430 に答える