chichi: Bilder dynamisch in 3-spaltige Tabelle verteilen

Hallo,
ich versuche gerade eine tabelle mit dynamischen Bildern zu bestücken.

Tabelle sieht so aus:

<table width="400" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><img src="testbild1.jpg" width="163" height="64"><br>
      testbild1.jpg </td>
    <td><img src="testbild2.jpg" width="163" height="64"><br>
      testbild2.jpg </td>
    <td><img src="testbild3.jpg" width="163" height="64"><br>
      testbild3.jpg </td>
  </tr>
  <tr>
    <td><img src="testbild4.jpg" width="163" height="64"><br>
      testbild4.jpg </td>
    <td><img src="testbild5.jpg" width="163" height="64"><br>
      testbild5.jpg </td>
    <td><img src="testbild6.jpg" width="163" height="64"><br>
      testbild6.jpg </td>
  </tr>
</table>

Mein Versuch mit PHP:

echo "<table width="400" border="0" cellspacing="0" cellpadding="0">";
   foreach( $gallery as $image ) {
   if ($i % 3 == 0) { print '<tr>'; } // nach jedem 3.Durchlauf
       echo "<td><img src='$image'>$imagename</td>";
   if ($i % 3 == 0) { print '</tr>'; } // nach jedem 3.Durchlauf

}
echo "</table>";

Fehler und Ergebnis:

  • mein Tag  <tr> wird nach jedem Datensatz geschlossen. Er soll aber nur nach jedem dritten erst geschlossen werden. was ist in meiner Anweisung noch falsch?

chichi

  1. Hallo Chichi,

    bei deinem Script hat $i immer den Wert 0...

    Gruß Frank

    1. OK! Danke... habe einen ++ Zähler integriert:
      foreach( $gallery as $image ) {
         $i++;
         if ($i % 3 == 0) { print '<tr>'; }
             echo "<td><img src='$image'>$imagename</td>";
         if ($i % 3 == 0) { print '</tr>'; }

      }

      leider macht er mir die spalten 2 spaltig, einspaltig, 2 spaltig, einspaltig ...

      heul was mache ich noch falsch? chichi

      1. heul was mache ich noch falsch? chichi

        Wie sieht denn dein Array aus?

        1. ich lese einen ordner aus, das geht dann in ein array:

          while( $filename = readdir( $dh ) ) {
                     $filepath = $dir.$filename;
                     if( is_file( $filepath )
                     && ereg( ".jpg$", $filename ) ) {
                     $gallery[] = $filepath;
                     }
                }
                sort( $gallery );   ... danach gehts zur schleife...

          chichi

          1. Hm, ich glaub $i++ sollte am Ende der Schleife stehen.

            Er schreibt im Mom erst die TD, da $i mit 1 beginnt.

            Gruß Frank.

            1. Ich glaube mein Ansatz ist falsch. es fehlen tr-schliessende tags. gibt es bessere möglichkeiten für eine horizontale (4 st) darstellung von arrays?
              chichi