Ob der Zaehler gerade oder ungerade ist erhaelt man mit:
if ($i % 4 == 0)
$i MOD 4 ergibt aber nicht, ob die Zahl gerade oder ungerade ist, sondern macht alle 4 Zeilen eine weiße Zeile. Ist zwar ein ganz netter Effekt, man kann ihn auch für vier abwechselnde Zeilen einsetzen, aber ($i % 2 == 0) wäre dann für das aktuelle Problem doch besser. ;)
Man kann natürlich auch mit einer boolschen Variablen arbeiten. Das ist dann vielleicht etwas eleganter. Ich bastel mal in deinem Code rum. (Und die Zuweisung aus dem Original vom Hash zum Skalar kann man sich auch sparen) ;)
<?
$i = false;
while $z=(mysql_fetch_array($x)) {
if ($i) {
echo"<tr><td bgcolor=white>".$z['dat']."</td></tr>";
} else {
echo"<tr><td bgcolor=black>".$z['dat']."</td></tr>";
}
$i = !$i; // Hier wird zwischen true (erste Zeile) und false (zweite Zeile) umgeschaltet.
}
?>
Vorteil: Der Zähler $i läuft niemals über - wäre vielleicht ein Problem, wenn mehr als 2^32 Zeilen auszugeben sind. ;)
- Sven Rautenberg