DB-Abfrage, Zeilen mit unterschiedlicher Farbe?

KingChimera

Mitglied
Tach zusammen, habe schon oft gesehen das bei einer Datenbankabfrage die Ergebnisse in eine Tabelle geschrieben werden, soweit ja kein Problem. Nur wie kriege ich es mit PHP hin das die erste Zeile zB Grau ist, die 2te Weiß, die 3te wieder Grau etc...

Habe bisher noch keine Möglichkeit gefunden, hoffe ihr könnt mir hier weiterhelfen... :D

Servus, greetz KingChimera
 
Hallo!

Das ist ganz einfach:
Du musst nur in der while-Schleife (die sollte ja vorhanden sein), in der du die Ergebnisse der Ausgabe der Query durchgehst, eine Variable setzten, die durchzählt, in welcher Spalte du dich befindest.
Je nachdem, welchen Wert diese Variable hat, setzt du dann eine andere Farbe in die Zeile und setzt den Wert der Variablen danach wieder so, dass in dem nächsten Durchgang die andere Farbe wieder angezeigt wird.
Hier mal ein kleines Beispiel (die Farben dürften von PHPMyAdmin bekannt sein):

PHP:
$Q = mysql_query("SELECT * FROM tbl_User");
$i = 1;
?>

<Table Border="1" NoWrap CellPadding="5" style="table-layout:fixed;">
<TR bgcolor="EEEEEE"><TH width="30">Nummer:</TH><TH width="100">Username:</TH><TH width="250">E-Mail:</TH><TH width="250">Homepage</TH><TH width="120">Vorname:</TH><TH width="120">Nachname:</TH><TH width="250">Stra&szlig;e</TH>
<TH width="60">Plz:</TH><TH width=250">Ort:</TH><TH width="160">Telefon:</TH><TH width="160">Handy:</TH><TH width="100">Geburtstag</TH><TR>
<?php
while ($R = mysql_fetch_assoc($Q)) {
	if ($e==1) {
	echo "<tr bgcolor=\"#CCCCCC\" onmouseover=\"if (typeof(this.style) != 'undefined') this.style.backgroundColor = '#CCFFCC'\" onmouseout=\"if (typeof(this.style) != 'undefined') this.style.backgroundColor = ''\">";
	$e=0;
	} else {
	echo "<tr bgcolor=\"#DDDDDD\" onmouseover=\"if (typeof(this.style) != 'undefined') this.style.backgroundColor = '#CCFFCC'\" onmouseout=\"if (typeof(this.style) != 'undefined') this.style.backgroundColor = ''\">";
	$e=1;
	}
	
	echo "<TD>$i</TD><TD NoWrap>$R[Username]</TD><TD NoWrap>$R[EMail]</TD><TD NoWrap>&nbsp;$R[Homepage]<TD NoWrap>$R[FName]</TD><TD NoWrap>$R[SName]</TD><TD NoWrap>$R[Street]</TD><TD NoWrap>$R[PostCode]</TD>";
	echo "<TD NoWrap>$R[City]</TD><TD NoWrap>&nbsp;$R[Phone]</TD><TD NoWrap>&nbsp;$R[Handy]</TD><TD NoWrap>$R[Birthday]</TD></TR>";
$i++;
}
echo "</Table>";
 
Naja, ganz einfach... :D
Bin zwar schon etwas länger mit PHP und mySQL beschäftigt, allerdings benutze ich den Code von Dreamweaver, da ich zu faul bin alles selber zu schreiben (manches ja, alles nein... :D )...

Habe mal meine guestbook.php als Text angehängt, ich sehe im Dokument zwar eine while-Schleife, allerdings bin ich mir nicht sicher wie ich dann fortfahren soll, da sich deine Methode (meiner Ansicht nach) doch recht stark von der DW-Methode unterscheidet...

Hoffe ihr könnt mir da noch einen kleinen Schubser geben, so dass ich den Rest irgendwie alleine hinkriege... :D

Servus, greetz KingChimera
 

Anhänge

Schreib' bei deiner while-Schleife einfach folgende Code hinzu (natürlich nicht mit der extra while-Schleife! - die dient nur zur Verdeutlichung, wo was hin gehört.):

PHP:
$i = false;
while ($row_Guestbook = mysql_fetch_assoc($Guestbook)) {
$Color = ($i ? "#FF00FF" : "#00FF00");
$i = ($i ? false : true);

In $Color steht dann die Farbe für jede Zeile.
Die kannst du dann ja einfach in den <tr>-Tag (oder wo sonst auch immer hin) hinzufügen.
Ich hoffe doch mal, dass du weisst, wie das geht!
 
Also müsste meine Zeile für die while-Schleife so aussehen

PHP:
<?php } 
$i = false;
while ($row_Guestbook = mysql_fetch_assoc($Guestbook));
$Color = ($i ? "#FF00FF" : "#00FF00"); 
$i = ($i ? false : true);
?>

Und die Zeile dann so

PHP:
<tr valign="baseline" bgcolor="$Color">

Anders kann ich mirs nicht vorstellen... :rolleyes:

Servus, greetz KingChimera
 
Zurück