In While Schleife anzahl <td> definieren?

FlyTribun

Grünschnabel
Hallo,

ich versuche verzweifelt :( die Anzahl <td> (Spalten) in einer While Schlaufe zu definieren.

Hier der Code:

PHP:
$query = mysql_query("SELECT * FROM gallery  WHERE link='".$_GET['link']."'") or die(mysql_error());
  while ($row =mysql_fetch_array($query)) 
  {
    echo '<tr><td><a href="'.$PHP_SELF.'?gallery=gallery&id='.$_GET['id'].'">';
    echo '<img src="'.$row ['link'].'" alt="" border="0"></td></tr></a>';
  }

Ich möchte gerne 3 bilder pro Zeile zeigen. Kann mir da jemand weiterhelfen?

Danke
 
Hallo!

Es wäre doch äußerst hilfreich, wenn du beschreiben würdest, was denn nicht funktioniert, bzw. was denn überhaupt passiert.
Aber hier mal ein beispielhafter Code:

PHP:
$query = mysql_query("SELECT * FROM gallery  WHERE link='".$_GET['link']."'") or die(mysql_error()); 
$i = 1;
$MaxAnzahl = 3;
while ($row = mysql_fetch_array($query)) 
{
    $tr_ende = false;
    if ($i == 1) echo "<tr>";

    echo '<td><a href="'.$PHP_SELF.'?gallery=gallery&id='.$_GET['id'].'"><img src="'.$row ['link'].'" alt="" border="0"></a></td>';

    if ($i == $MaxAnzahl)
    {
        echo "</tr>";
        $i = 1;
        $tr_ende = true;
    }
    else $i++;
}
if (!$tr_ende) echo "</tr>";

Die Variable $MaxAnzahl definiert dabei die Anzahl der Bilder pro Spalten.
$i ist ein Platzhalter, der die Nr der aktuellen Spalte beinhaltet.
Nach jeder Spalte wird $i um eins erhöht, es sei denn $i hat den Wert der maximalen Spaltenzahl, dann wird $i nämlich wieder auf 1 gesetzt.
Und damit es nicht vorkommt, dass du eine unvollständige Tabelle hast (wenn du z. B. nur 10 statt 12 Bilder hast, würde $i ja nicht gleich $MaxAnzahl sein und somit das abschließende </tr> nicht gesetzt), wird noch die Variable $tr_ende auf true gesetzt, wenn "</tr>" bereits angefügt wurde), wenn nicht, wird es natürlich noch hinten mit dran gehangen.
 
Zurück