Ausgabe in 3 Spalten

kevkev

Erfahrenes Mitglied
Hallo,

Ich habe ein paar Datensätze in MySql die ich in 3 Spalten (Tabelle) ausgeben will:

Nehmen wir an Ich habe 9 Datensätze. Diese will Ich nur gleichmäßig aufgeteilt in 3 Spalten haben.
Ich würde also 9/3 rechnen, dann über nen Zähler die Ausgabe für die erste Spalte bis 3 laufen lassen, den Zähler zurücksetzen, etc. bis eben zur 3 Spalte.

Aber was mache Ich bei z.b. 20 Datensätze? 20/3 würde 6, Periode 6 ergeben, aber wie gebe Ich 6,6 Datensätze aus?

Ich muss also irgendwie die 20 Datensätze gleichmäßig auf 3 Spalten verteilen.

Da wären wir bei meinem Problem: Wie mache Ich das?
Ich dachte da an runden, aber da würde die anzahl an Datensätze nicht mehr stimmen.

habt Ihr eine Idee?

gruß Kevin
 
Du musst diese Logik anwenden:

Sobald die Anzahl durch 3 Teilbar (sobald die Anzahl/3 keinen Rest ergibt) ist muss ne neue Zeile her:

PHP:
if(($anzahl%3) == 0){

   echo "</tr><tr>";

}

Verstanden?
 
Kleiner Denkanstoß:
PHP:
<?
echo "<table>";
echo "<tr>";

for($i=0;$i<=20;$i++)
{
  if($i % 3 == 0)
  {
    echo "</tr><tr>";
  }
  echo "<td>".$i."</td>";
}

echo "</tr>";
echo "</table>";
?>
 
Mhh, nicht so wirklich.
Denn Ich weiß Nicht was du mit den <tr>´s willst, diese ergeben eine neue Zeile, Ich will aber nur 3 Spalten:

PHP:
<table>
 <tr>
  <td>
   SPALTE 1
  </td>
  <td>
   SPALTE 2
  </td>
  <td>
   Spalte 3
  </td>
 </tr>
</table>

Ich würde dann die Ausgabe in 3 Variablen puffern und dann dort einsetzen.

gruß Kevin
 
Hi,

Ok, Ich habs geschafft ^^:

PHP:
for($i=0;$i<=20;$i++) {
	switch($i%3){
		case 0: 
			$spalte1 .= "Jo<br>";
			break;
		case 1: 
			$spalte2 .= "Jo<br>";
			break;
		case 2: 
			$spalte3 .= "Jo<br>";
			break;
		default:
			;
	} // switch
  
}
echo "<table>";
echo "<tr>";
	echo "<td>$spalte1</td><td>$spalte2</td><td>$spalte3</td>";
echo "</tr>";
echo "</table>";

Ich weiß zwar nicht genau warum das so geht, aber es geht, das reicht mir ^^.

Danke:D!

gruß Kevin
 
Zurück