Tabelle richtig erzeugen mit Modulo-Operator

lisali

Erfahrenes Mitglied
Hallo!

Ich habe das Problem, dass ich eigentlich eine ganz simple Tabelle erzeugen möchte. Und zwar zeige ich in folgendem Schema jeweils drei zufällige User mit jeweils Bild und Usernamen an:

[ Bild 1 | Bild 2 | Bild 3 ]
[ User1| User2| User3]

Jetzt ist nur das Problem da, dass ich das richtig mit PHP realisiere. Mein Code sieht derzeit so aus:

PHP:
<table>
<?
$result = mysql_query("SELECT id,username 
FROM users WHERE time != '0000-00-00 00:00:00' AND id != '".$_SESSION['user_id']."' ORDER BY RAND() DESC LIMIT 9");
$i=0;
while ($random_user = mysql_fetch_array($result)) {
if ($i % 3 == "0"){ echo "<tr>"; }
echo '<td width="33%">bild</td>';
if ($i % 3 == "0"){ echo '</tr><tr><td>username</td></tr>'; } 
$i++; }
} 
?>
</table>

Ist das überhaupt möglich zu realisieren, weil doch rein logisch gedacht zuerst Bild 1 ausgegeben wird, aber dann ja schon Spalte 2 (also auch Bild 2) geöffnet wird!? Da bei mir ja die Namen in einer Extra Tabellen-Zeile stehen, also darunter. Ich hoffe man kann mir folgen, was ich meine!?

Ich hoffe jemand kann mir helfen!

Liebe Grüße,

Lisa
 
Hi,

Du könntest die beiden Tabellenzeilen in zwei Variablen zusammensammeln, nach 3 Schleifendurchläufen ausgeben und die Variablen wieder leeren. ;)

LG
 
Danke für deinen Beitrag. Irgendwie muss ich ehrlich gesagt zugeben, dass ich nicht ganz verstehe wie das aussehen sollte!?

Liebe Grüße,

Lisa
 
Hi,

PHP:
$i = 1;
$bilder = '';
$namen = '';
while($row = mysql_fetch_array($result)) {
   $bilder .= '<td>' . $row['bild'] . '</td>';
   $namen .= '<td>' . $row['name'] . '</td>';
   if ($i % 3 == "0") { 
      echo '<tr>' . $bilder . '</tr>';
      echo '<tr>' . $namen . '</tr>'; 
      $bilder = '';
      $namen = '';
   }
   $i++;
}

dann musst du nur noch zusehen, dass Du die "Übriggebliebenen" nach der Schleife noch ausgibst, falls die Anzahl nicht durch 3 teilbar war.

LG
 
Zurück