gestreifte Tabelle

strukturart

Erfahrenes Mitglied
Hallo,

ich versuche mich gerade an einer gestreiften Tabelle,
jedoch wird die Bedingung if($counter==1) einfach übersprungen?

Was mache ich denn da falsch?

PHP:
$counter=0;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
	
$counter++;
echo $counter;
	 echo "<tr  if($counter==1){echo bgcolor='#00FFFF';}
	 else{echo bgcolor='#000000';}>";
	
  echo "<td>". $zeile['ranking']."</td>";
   echo "<td>". $zeile['zeit']."</td>";
  echo "<td>". $zeile['startnummer']."</td>";
  echo "<td>". $zeile['vorname']."</td>";
  echo "<td>". $zeile['name']."</td>";
  echo "<td>". $zeile['team']."</td>";
  echo "<td>". $zeile['pseudonym']."</td>";
  echo "</tr>";
  
 if($counter==2)
 {$counter=0;}

 
}
 
PHP:
echo "<tr  if($counter==1){echo bgcolor='#00FFFF';}
else{echo bgcolor='#000000';}>";
Das gibt logischerweise das folgende aus
HTML:
<tr  if(1==1){echo bgcolor='#00FFFF';} else{echo bgcolor='#000000';}>

Na?
Genau. du kannst den if() nicht innerhalb des Strings machen:
PHP:
$color = ($counter==1) ? '#00FFFF' : '#000000';
echo "<tr  bgcolor='{$color}'>";
 
Okay danke das funktioniert.
Verstehen den Syntax nicht ganz?

PHP:
$color = ($counter==1) ? '#00FFFF' : '#000000';

ist das eine gekürzte Schreibweise von if else?
 
Genau so ist es.
Wenn der Vergleich stimmt ($counter == 1) wird der Variablen $color der erste Wert zugewiesen, wenn nicht der zweite.
 
PHP Doku: Ausdrücke
Es gibt einen weiteren Ausdruck, der Ihnen vielleicht seltsam vorkommt, wenn Sie ihn bisher noch in keiner Programmiersprache kennengelernt haben, den dreifach konditionalen Operator:

PHP:
<?php
$eins ? $zwei : $drei
?>

Wenn der Wert des ersten Sub-Ausdruckes (hier: $eins) TRUE ist (d. h. nicht 0), dann wird der Wert des zweiten Subausdrucks (hier: $zwei) ausgewertet und ist das Ergebnis des konditionalen Ausdrucks. Andernfalls wird der dritte Subausdruck ausgewertet und dessen Wert zurückgegeben.
 
Zurück