Gast Geschrieben 25. September 2007 Geschrieben 25. September 2007 Hallo, vielleicht kann mir jemand weiterhelfen. Ich stehe vor folgendem Problem: Ich habe eine Tabelle, die 5 Spalten beinhaltet. In der 1., 3. und 5. Spalte sind jeweils Grafiken, die aus der Datenbank ausgelesen werden sollen. Die Spalten 2 und 4 sind jeweils für den Abstand. Nach Ausgabe der ersten Reihe, soll eine Reihe als Abstand zur vorherigen Reihe erfolgen. Ziel dieses Ganzen ist es, alle Bilder, die in der Datenbank gespeichert sind, nach einander auszugeben, allerdings soll nach Ausgabe des dritten Bildes ein Zeilenumbrucherfolgen, der wiederum einen Abstand zur vorherigen Zeile hat. Die weitere Zeile soll dann die nächsten drei Bilder anzeigen und so weiter. Wie das Ganze aussehen soll, ist auf dem Screenshot zu sehen. Für Lösungsansätze wäre ich sehr dankbar. <table cellpadding="0" cellspacing="0" border="0" width="650" class="fliesstext"> <tr> <td colspan="5" height="10"></td></tr> <tr> <td width="210" height="90" bgcolor="#EEEEEE"><a href="<? echo $_SERVER['PHP_SELF']."?hn=$hn&sn=$sn&order=1" ?>"><img src="/page/page2/fotografie/img_sm/1.jpg" border="0"></a></td><td width=10></td><td width=210 height=90 bgcolor="#EEEEEE"><img src="/page/page2/fotografie/img_sm/2.jpg" border="0"></td><td width=10></td><td width=210 height=90 bgcolor="#EEEEEE"><img src="/page/page2/fotografie/img_sm/3.jpg" border="0"></td></tr> <tr> <td width="210" height="10"></td><td width=10></td><td width=210 height=10></td><td width=10></td><td width=210 height=10></td></tr> </table> Zitieren
Jaraz Geschrieben 25. September 2007 Geschrieben 25. September 2007 Zählvariable mitlaufen lassen und dann: if(counter%3==0){ echo "</tr><tr>";//oder\n oder was auch immer } Gruß Jaraz Zitieren
Gast Geschrieben 25. September 2007 Geschrieben 25. September 2007 Hallo, Jaraz! Danke für Deine Antwort, aber ich verstehe sie bzw. das Konstrukt nicht ganz. Kannst du mir das bitte genauer erklären? Vielen Dank Zitieren
l0rdseth Geschrieben 25. September 2007 Geschrieben 25. September 2007 Lass doch einfach die Abstand-Spalten weg und setz in den <table> noch cellspacing="10" ein.... das sollte dein Problem lösen und wegen der Schleife die müsste dann so ausehen echo '<table cellspacing="20">'; echo '<tr>'; $i = 1; //Datenbankabfrage while(//Datenbankergebniss) { if($i==3) { $i=1; echo '</tr><tr>'; } echo '<td>Bild</td>'; $i++; } echo '</tr>'; echo '</table>'; [/PHP] Ist halt mit Zähler. Bei jedem dritten durchgang endet er die Zeile und startet eine neue. Zitieren
azett Geschrieben 26. September 2007 Geschrieben 26. September 2007 Hatte das gleiche Problem. Lösung (vereinfacht): <?php $picsperrow = 3; // Anzahl Bilder pro Tabellenzeile $THUMBARRAY = //...ein Array mit den Namen der Bilder... $thumbs = "<table><tr>"; for ($i=0; $i<count($THUMBARRAY); $i++) { // Neue Tabellenzeile aller $picsperrow Bilder if (($i > 0) && ($i % $picsperrow == 0)) $thumbs .= "</tr><tr>"; $thumbs .= "<td>" ."<img src=\"".$THUMBARRAY[$i]."\" alt=\"".$THUMBARRAY[$i]."\" />" ."</td>"; } // Tabelle vervollständigen while ($i % $picsperrow > 0) { $thumbs .= "<td> </td>"; $i++; } $thumbs .= "</tr></table>"; // Ausgabe echo $thumbs; ?>[/PHP] Die Schleife [i]while ($i % $picsperrow > 0)[/i] sorgt dafür, daß die letzte Tabellenzeile mit leeren Feldern aufgefüllt wird, wenn sie nicht schon $picsperrow Felder hat. Den Abstand zwischen den einzelnen Tabellenfeldern kannst du auf verschiedene Arten herstellen, ich empfehle CSS. Entweder gibst du den Bildern Außen-, oder aber den Tabellenfeldern Innenabstand. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.