Ingo: Bilder in Spalten ausgeben

Hallo und guten Abend,

ich stehe vor einem Problem, wäre über Hilfe Dankbar!

Ich hole mir die Daten für meine Bilder aus der Datenbank und möchte diese jetzt in Spalten ausgeben. In der DB befinden sich 87 Bilde und es werden nur 4 Seiten gelistet meine Vorgaben sind $Spalten=5, $maxBilder=25 für jede Seite, also stimmt die 87/5 folglich.

hier mein Problem ich bekomme pro Seite jetzt nur 5 mal das Selbe in einer Reihe angezeigtes Bild.
Ich habe folgenden Code eingesetzt:

1: <? // Ausgabe soll in Spalten erfolgen
2: for ($i = 0; $i < $spalten; $i++) {
3:          echo "<td>";
4:          echo "<a href="../wallpaper/detail.php?id=".$id.""><img src="../wallpaper/thumb/".$bild."" width="120" height="90" border="0" /></a>"; }
5:          echo "</td>";
6:    ?>

Bin über jeden Vorschlag dankbar,
Ingo

  1. Also erstmal kann das so schonmal nicht funktionieren, denn wenn du eine 2-Dimensionale Anordnung hast, brauchst du idR auch 2 Schleifen. Also eine äußere, die die Zeilen abarbeitet und eine innere, die die Spalten abarbeitet.

    for($i = 0; $i < $zeilen; $i++) {
        for($j = 0; $j < $spalten; $j++) {

    }
    }

    Dass du immer nur das selbe Bild angezeigt bekommst, liegt daran, dass du nirgendswo den Inhalt von $bild änderst. Dass muss natürlich in jedem Schleifendurchlauf geschehen.

    Da du die Daten aus der Datenbank holst, gehe ich mal davon aus, dass du Array mit allen Bildern bekommst. Also brauchst du nur einen weiteren Zähler, der das Array durchläuft:

    $l = 0;
    for($i = 0; $i < $zeilen; $i++) {
        echo '<tr>';
        for($j = 0; $j < $spalten; $j++) {
            echo '<td>'.$bild[$l].'</td>';
            $l++
        }
        echo '</tr>'
    }

    (in dem Beispiel wird natürlich nur der Bildname ausgegeben, aber ich denke, du siehst wie ich das Ganze meine)

    Ich hoffe, ich konnte etwas helfen!

    Gruß,
    Tobi

    1. Hallo und einen guten Morgen,

      danke Tobi für deine Antwort, werde mich jetzt mal gleich an die Umsetzung ranmachen.

      Gruß Ingo