Array in 2 Spalten

exxe

Mitleser
Hallo erst mal.

Ich hätte da gerne mal ein kleines Problem:

Momentan bastle ich an einer kleinen Link-Seite. Die Rubriken der Links stehen momentan alle noch untereinander, da ich diese aus einer Datenbank auslese (siehe unten)

PHP:
<?php 
include ("db.php");
$query = "SELECT * FROM links ORDER BY name DESC";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result)) 
{ 

echo (“<tr><td width="210"><b> $line[name] </b></td></tr>”);

}
mysql_free_result($result);
mysql_close();
?>


Nun möchte ich aber gerne, dass in jeder Reihe zwei Rubriken stehen und anschließend einen Zeilenumbruch gemacht wird (besser gesagt, dass nach zwei Spalten pro Zeile eine neue Tabellenzeile angelegt wird). Also im Prinzip so was wie

PHP:
{ 

echo (“<td width="105"><b> $line[name] </b></td><td width="105"><b> $line[name] </b></td>”);

}



also so:

I----------I----------I
I  Link 1  I  Link 2  I
I----------I----------I
I  Link 3  I  Link 4  I
I----------I----------I

Kann mir da evtl. jemand weiterhelfen oder mit nem Stich-, Schlag-, oder Prügelwort weiterhelfen. Ich weiß leider nicht, wonach ich da suchen müsste.

Schon mal vielen Dank

exxe
 
Schau Dir mal folgenden Code an:

PHP:
<?php 
include ("db.php"); 
$query = "SELECT * FROM links ORDER BY name DESC"; 
$result = mysql_query($query); 
$i=0; // Hilfsvariable auf 0 setzen
echo "<tr>"; // erstmal ne Zeile beginnen
while ($line = mysql_fetch_array($result)) 
{ 
   echo (“<td width="210"><b> $line[name] </b></td>”); 
   $i++; // Hilfsvariable um eins erhöhen
   if ($i % 2 == 0) {     // wenn die Hilfsvariable gerade (also durch zwei teilbar ist)
      echo "</tr><tr>";  // dann neue Zeile
   }
} 
echo "</tr>"; //letzte Zeile abschliessen
mysql_free_result($result); 
mysql_close(); 
?>

Damit bekommst Du immer zwei Spalten.

Prinzip verstanden? Es gibt auch andere (ähnliche, bessere) Möglichkeiten. ;)

ACHTUNG: dieses Beispiel ist sehr einfach, und deckt leider nicht jeden Fall ab. Soll auch nur als "Denkhilfe" dienen.




Dunsti
 
Zuletzt bearbeitet:
Wow, erst mal Danke für die schnelle Antwort.


Auch wenn es andere (bessere) Möglichkeiten gibt, reicht mir das als Denkhilfe erst mal.
Mir gings auch nur darum, dass ich das Prinzip verstehe. Und das hab ich jetzt durch deine Hilfe. Danke
 
Zurück