Frage Erstellen einer dynamischen Tabelle mit PHP


Ich versuche eine dynamische Tabelle mit PHP zu erstellen. Ich habe eine Seite, die alle Bilder aus einer Datenbank anzeigt. Ich brauche den Tisch nur aus 5 Spalten. Wenn mehr als 5 Bilder zurückgegeben werden, sollte eine neue Zeile erstellt und die Anzeige der restlichen Bilder fortgesetzt werden.

Kann mir bitte jemand helfen?

Codes gehen hier: Code auf der Hauptseite: -

    <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>

Die Funktion 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;

Dieser Code erstellt eine einzelne Zeile. Ich kann mir nicht vorstellen, wie ich mehrere Reihen bekommen kann ... !!


5
2017-10-25 07:18


Ursprung


Antworten:


$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>";

Ich habe es noch nicht getestet, aber meine wilde Vermutung ist so etwas. Blättern Sie einfach mit den Bildern durch Ihren Datensatz und so lange Sie nicht 5 gemacht haben <td>noch, füge eins hinzu. Sobald Sie 5 erreicht haben, schließen Sie die Zeile und erstellen Sie eine neue Zeile.

Dieses Skript soll Ihnen etwas wie folgt geben. Es hängt natürlich davon ab, wie viele Bilder du hast und ich nahm an, dass 5 (definiert in $ maxcols) war die maximale Anzahl der Bilder, die Sie hintereinander anzeigen möchten.

<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
2017-10-25 07:23



$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
2017-10-25 07:22