Tabelle mit PHP in FOR SCHLEIFE erzeugen
Andre
- programmiertechnik
Hallo an Alle,
ich stehe gerade vor einem Problem:
Ich arbeite an einer Bilder-Galerie.
Hochgelden werden die Bilder über ein PHP-Script.
Die Bild-Daten landen direkt auf dem FTP-Server und die Infos (Name/Pfad/Text u.s.w.) in einer MySQL Datenbank.
Nun möchte ich alle Bilder in einer Tabelle mit jeweils 3 Spalten ausgeben.
Ich habe schon oft mit while und fatcharray eine editierbare Datenbankausgabe erzeugt.
Doch wie läuft es hier?
Ist der richtige Ansatz eine "Mehrdimensionale (verschachtelte) FOR Schleife"?
Wenn ja, gibt es wie bei IF verschiede Schreibweisen? ( {} und :break ) oder liege ich ganz falsch?
Natürlich kann ich die Bilder auch statisch abfragen, da es sich um eine bregrenzte Anzahl an Bildern handelt.
Aber je weniger Code, umso besser ;-)
Viele Grüsse,
Andre
Hallo Andre,
Doch wie läuft es hier?
Ist der richtige Ansatz eine "Mehrdimensionale (verschachtelte) FOR Schleife"?
IMHO nicht ganz. Folgenden Code einfach je nach Namen anpassen:
Das entscheidende ist, dass du die Tabelle genau so in den Schleifen durchlaufen lässt, wie der HTML-Code auch ausgegeben werden muss, also von links nach rechts und von oben nach unten. Dabei hilft dir mysql_fetch_row(), das automatisch nach der Extraktion einer Zeile des Mysql-Ergebnisses den Ergebnis-Zeiger die nächste Zeile vorrückt.
<?php
// Mysql-Anmeldung und Datenbank-Wahl einfügen
$spalten = 3;
$num_bilder = mysql_result(mysql_query("select count(bidname) from bilder"),0,0);
$query = "SELECT bildname,url FROM bilder ORDER BY id ASC";
$result = mysql_query($query);
echo("<table>");
for($i = 0;$i < $num_bilder;$i+=$spalten)
{
echo("<tr>");
for($y=0;$y<$spalten;$y++)
{
image_column($result);
}
echo("</tr>");
}
echo("</table>");
function image_column($result)
{
$bild = mysql_fetch_row($result);
if(!$bild)echo("<td> </td>");
$name = $bild[0];
$url = $bild[1];
echo("<td><img src="$url" alt="$name"></td>");
}
?>
Grüße aus Barsinghausen,
Fabian
Danke, das Script sieht verlockend aus, ich wills es aber selber schreiben :-)
Das heisst: Ansehen, verstehen und selber machen!
Vielen Dank für diese schöne Lösung!