Hm, noch kürzer geht's so:
<?
$i = 0;
while $z=(mysql_fetch_array($x)) {
if (($i++ % 2) == 0) {
echo"<tr><td bgcolor=white>".$z["dat"]."</td></tr>";
} else {
echo"<tr><td bgcolor=black>".$z["dat"]."</td></tr>";
}
}
?>
$i++ ist ein Post-Inkrement, d.h. nach der Verwendung des Wertes in $i (hier für die Operation $i % 2) wird der Wert inkrementiert. Der alte Wert von $i wird also genommen, und der neue Wert gleich danach in $i abgelegt. Der Vergleich mit 0 nimmt aber noch den alten Wert von ($i % 2) - genauso wollten wir es.
Ich befürchte, mit meinen ZWEI Postings könnte ich jetzt einen Wettlauf um das beste Coding ausgelöst haben. Wohin sowas führen kann: http://internet.ls-la.net/mirrors/99bottles/ (Übrigens eine sehr gute Referenz zu allen möglichen Programmiersprachen. :) )
- Sven Rautenberg