2 Hintergrundfarben innerhalb WHILE

Lux65

Mitglied
Hallo zusammen,

wie kann ich es realisieren, daß ich bei der Ausgabe aus der Datenbank 2 unterschiedliche Farben in den Zeilen habe? also immer abwechselnd, weil es so etwas übersichtlicher ist.

Hier mein code:

PHP:
while ($arr = mysql_fetch_array($result)) {
				
echo "<tr>";

echo "<td><a href=\"neu.php?id=".$arr['id']."&wahl=2\">Bearbeiten</a></td>";
echo "<td><a href=\"neu.php?id=".$arr['id']."&wahl=3\">Löschen</a></td>";
				
echo "<td>".$arr['vorname']."</td>";
echo "<td>".$arr['nachname']."</td>";
echo "<td>".$arr['strasse']."</td>";
echo "<td>".$arr['plz']."</td>";
echo "<td>".$arr['ort']."</td>";
echo "<td>".$arr['telefon']."</td>";
				
echo "</tr>";
				
}
Ich möchte nun, daß diese eine Zeile z.B. rot als Hintergrundfarne hat und die nächste blau. Und dann immer abwechselnd.

Ich habe es mit einem array und eine FOR-Schleife versucht, aber ich krigs nicht gebacken 8(
 
Zuletzt bearbeitet:
Ich würd dir Empfehlen 2 CSS Klassen zu machen.
Dann machst du einen Counter und setzt ihn auf 0
Bei jedem durchlaufen der Schlaufe erhöhst du den Counter um 1.
Falls dann die Zahl gerade ist, dann nimmst du Klasse 1 wenn ungerade, Klasse 2. Rausfinden ob die Zahl gerade ist oder nicht geht mit MOD.
 
Probier mal Folngedes:
PHP:
<?php

	$i = 0;
	while( $arr = mysql_fetch_array($result, MYSQL_ASSOC) ) {
		$i++;
		echo '<tr class="'.( $i % 2 === 0 ? 'gerade' : 'ungerade' ).'">';
		[…]
	}

?>
 
Die Eigenschaften der einzelnen Tabellenreihen werden in den CSS-Klassen „gerade“ und „ungerade“ definiert.
 
Habe das jetzt so gemacht, aber es werden keine Datensätze mehr gezeigt


PHP:
while ($arr = mysql_fetch_array($result)) {

  $farbe1 = "#F5F5F5"; 
  $farbe2 = "#FAFAFA"; 
  for ($i = 0; $i < $zeilen; $i++) {		    
    echo "<tr bgcolor=\"(gmp_mod($i,2) ? $farbe1 : $farbe2)\">";
    echo "<td><a href=\"neu.php?id=".$arr['id']."&wahl=2\">Bearbeiten</a></td>";
    echo "<td><a href=\"neu.php?id=".$arr['id']."&wahl=3\">Löschen</a></td>";	   
    echo "<td>".$arr['vorname']."</td>";
    echo "<td>".$arr['nachname']."</td>";
    echo "<td>".$arr['strasse']."</td>";
    echo "<td>".$arr['plz']."</td>";
    echo "<td>".$arr['ort']."</td>";
    echo "<td>".$arr['telefon']."</td>";
				
    echo "</tr>";
  }
				
}

Habe das irgendwo im Forum gefunden, nur hilft mir das so nicht weiter.
 
Versuchs mit dem Modulo Operator "%".

Mach einfach eine If Abfrage mit
PHP:
if(6%2)
{
    //Text für die eine Farbe
}
else
{
    //Text für die andere
}

Ich hoff ich habs grad auswendig hinbekommen :)

Der Operator macht nix anderes als, zu schauen ob ein Rest raus kommt oder nicht.


Gruß
 
Was hast Du denn gegen die von Gumbo vorgeschlagene Variante?
CSS ist allemal besser, aber es geht natürlich auch zu Fuss, also so:

PHP:
while [...] { 

    if (($i % 2) == 0) {            
        echo '<tr bgcolor="red">'; 
    }
    else {
        echo '<tr bgcolor="blue">'; 
    }
    [...]                 
    echo "</tr>"; 
  } 
                 
}

EDIT: Ups, zu spät, sorry, wurde beim Schreiben aufgehalten.
 
Zuletzt bearbeitet:
Zurück