Sven Rautenberg: wie kann man das kürzen?

Beitrag lesen

Moin!

for ($i=0; $i<count($land); $i++)
{
  echo "<td>".$land[$i]['k']." - </td><td>".$land[$i]['d']."</td>";
  if (($i%$spalten)==5)
  {
    echo "</tr><tr>\n";
  }
}
echo str_repeat("<td> </td><td> </td>",($spalten-($i%$spalten)));

?></tr></table>

hm .......... aber würde dabei die sortierung der daten nich zeilenweise ablaufen??

sprich:
|a|b|c|d|
|e|f|g|h|

meine komplizierte methode soll ja folgendes ausgeben:

|a|c|e|g|
|b|d|f|h|

Aha.

Ändere dein HTML passend. Verschachtelte Tabellen sind für deine Ausgabewünsche ziemlich geeignet.

Alternativ (wenn du wirklich nur eine Tabelle haben willst) kannst du natürlich auch eine angepaßte FOR-Schleife nehmen bzw. darin etwas rumrechnen. Das will ich jetzt aber nicht bis zur Vervollständigung ausführen.

Oder du liest die Datenbank entsprechend anders aus - niemand schreibt dir vor, dass du die Ergebnisse hintereinander weg in ein Array schreiben mußt, du kannst das Array ja auch so befüllen, dass du hinterher leicht HTML erzeugen kannst.

was bedeutet eigentlich $i%$spalten?

Modulo-Operation.

was passiert dabei?

x % y: Teile x durch y, das Ergebnis ist der Rest. Schonmal in der Grundschule gewesen? Teilen mit Rest erlebt? Genau das ist es.

5 % 3 = 2 - die 3 paßt in die 5 einmal hinein, Rest 2. :)

Modulo ist eine der wichtigsten Operationen in der Computerei, würde ich sagen. Sie wird viel zu wenig beachtet, kann aber zum Verkürzen diverser Probleme genutzt werden.

- Sven Rautenberg

--
Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!