Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

php - Tabelle: Spaltenumbruch nach drei Einträgen

Empfohlene Antworten

Veröffentlicht

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.

screens.png

<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>

Zählvariable mitlaufen lassen und dann:


if(counter%3==0){

  echo "</tr><tr>";//oder\n oder was auch immer 

}

Gruß Jaraz

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

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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.