Tabelle von Thumbnails mit leeren Zellen füllen!

Pinky

Erfahrenes Mitglied
Hallo Leute,

ich habe eine Galerie geschreieben, die immer 4 Bilder pro Reihe ausgeben und nach 4 Bildern eine neue Reihe erstellen soll. Das heisst, in der ersten Reihe sind die Bilder 1-4, in der zweiten Reihe 5-8 usw.

Jedes einzelne Bild befindet sich in einer Spalte (<td></td>).

Ich habe dies mit einem Modulo gelöst:
PHP:
 if (($i % 4) == 0) echo "</tr><tr>";

Mein Problem liegt aber darin, wenn jetzt die letzten Bilder nicht die ganze Reihe füllen kann, setzt es mir die Bilder einfach irgendwo in der Tabelle hin. Also möchte ich, dass es mir dei Reihe so lange mit leeren Spalten füllt, bis die Reihe ganz gefüllt ist.

Ich möchte die leeren Stellen aber nicht mit Bildern, sondern einfach mit leeren <td></td> auffüllen.

Wie muss ich das machen?

Vielen Dank
Pinky
 
Du hast doch deine Laufvariable $i. Nehmen wir an sie ist bei 5, d.h. eine Reihe ist
voll und in der Zweiten nur das erste Bild, fehlen also noch drei Stück zur Vollendung.
PHP:
} // Schleife zu ende

if(($i % 4) != 0) { // sicher gehen dass die Reihe nicht voll ist
  for($k=$i;$k<$i+4;$k++) { // Die Schleife "fortführen" ...
    echo '<td></td>';
    if(($k % 4) == 0) { // ... bis der Modulo 0 sagt
      echo '</tr>';
      break; // Schleife abbrechen
    }
  }
}
Ungetestet.
 
So geht es:
PHP:
for($k=$i+1;$k<$i+4;$k++) { // Die Schleife "fortführen" ...

Hier noch meine Testumgebung:
PHP:
echo '<table><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td>';
$i=5;
if(($i % 4) != 0) { // sicher gehen dass die Reihe nicht voll ist
  for($k=$i+1;$k<$i+4;$k++) { // Die Schleife "fortführen" ...
    echo '<td>'.$k.'</td>';
    if(($k % 4) == 0) { // ... bis der Modulo 0 sagt
      echo '</tr>';
      break; // Schleife abbrechen
    }
  }
}
echo '</table>';
Führt zu folgender Ausgabe:
Code:
1	2	3	4
5	6	7	8
 
Ich versuchte es so einzubauen:

PHP:
echo "<table width='580' border='0' cellpadding='0' cellspacing='0' class='rahmen_alle'>
<tr><td height='25' colspan='20' valign='top' class='galerie_titel'>".$row['galerietitel']."</td></tr>
<tr><td height='10' colspan='4' valign='top'></td></tr>
<tr>";

while($tmp = mysql_fetch_assoc($res)) {
echo "
<td width='15'></td>
<td width='120' height='100' valign='top'><a href='index.php?folder=galerie&file=detail&galerie=".$tmp['galerienr']."&bild=".$tmp['id']."' class='link_leer'><img src='galerie/bilder/".$tmp['galeriename']."/thumbs/t_".$tmp['bildname']."'></a></td>";

if(($i % 4) != 0) {
  for($k=$i+1;$k<$i+4;$k++) {
    echo '<td></td>';
    if(($k % 4) == 0) {
      echo '</tr>';
      break;
    }
  }
}
else echo "</tr><tr>";
$i++; }
echo '</table>'; 

echo "</tr></table>";

Funktioniert aber ned... Bin ganz Konfus
 
Es muss hinter die While Schleife, was ich hiermit auszudrücken versuchte:
PHP:
} // Schleife zu ende
In der While Schleife macht es ja auch recht wenig Sinn :eek:
 

Neue Beiträge

Zurück