Tabellenfarbe im wechsel

MOD

Mitglied
Hallo Gemeinde,

ich steh gerade voll auf'm Schlauch. Da ich selten mit PHP und MySQL arbeite, vergesse ich das meiste sofort wieder :rolleyes:

Ich möchte aus einer SQL-Datenbank datensätze auslesen und ausgeben. Dies soll in einer Tabelle geschehen.. soweit läuft das ganze.
Jetzt möchte ich die Tabellenzeilen zweifarbig wechselnd - also erste weiß, zweite grau usw. - haben, weiß aber ums verrecken nicht mehr wie ich das mache.

PLEEZE, HELP

MOD
 
Du gibst ja wahrscheinlich die Tabelle mit einer Schleife aus ne.

Dann baue noch einen Zähler ein ( oder benutze direckt $i falls du nicht mit foreach arbeitest)
Bei geraden Zahlen ordnest du der Zeile eine Farbe - bei ungeraden andere...

Bsp:

Code:
echo " <table ...> ";    
   for( $i = 0; ... ; $i++ ){
       ... 
      // Farbe bestimmen  
     $rest = ($i%2); 
  
     if($rest == 0){
        $farbe = "blue"; 
     }
     else{
      $farbe = "red";
     }
     
     echo " < tr bgcolor = '$farbe' > ";

     ...

     echo </tr>

  }

echo "</table>";
 
Vielleicht ein Tick eleganter:
PHP:
<?
echo "<table>";
for($i=0;$i<10;$i++)
{
  ($i % 2) ? $col="#123456":$col="#654321";
  echo "<tr bgcolor=\"$col\">";
  echo "<td>".$i."</td>";
  echo "</tr>";
}
echo "</table>";
?>
 
suye hat gesagt.:
Vielleicht ein Tick eleganter:
PHP:
  ($i % 2) ? $col="#123456":$col="#654321";
Wobei ich noch nie einen Programmierer getroffen habe, der Konstrukte mit ? : als "elegant" bezeichnet. ;)

Nachtrag: Was nicht heißen soll, dass ich sowas nicht benutze. Ich schreib im hier genannten fall sogar $col = ($ % 2) ? '123456' : '654321'; (aber nur bei Privatkram).
 
Zuletzt bearbeitet:
Ich würde diese Schreibweise in diesem Zusammenhang auch der längeren vorziehen, denn in diesem Fall ist sie tatsächlich eleganter.
 
Ich würde wenn dann $col = ($i % 2) ? '#123456' : '#654321'; verwenden – oder die ganze Geschichte zwecks besserer Lesbarkeit gleich in eine Funktion auslagern.
 
Alle Eleganz in Ehren.

Ich denke die ausführliche erste Variante hat den unschlagbaren Vorteil, sehr leicht verständlich zu sein! Auch für Programmierer, die nur hin und wieder mit PHP arbeiten.

vop
 
Ausführlich war meine auch und sie hat den unschlagbaren Vorteil kurz und prägnant zu sein.
What ever, funktioniert beides. Geschmäcker sind verschieden.
PHP:
$col = ($i % 2) ? '#123456' : '#654321';
//hast Recht, ist noch schöner :D
 
Moin!
Mein alter Code, um die Tabelle abwechselnd farbig zu gestalten, funktioniert leider nicht mehr richtig. Ich hatte eine Funktion verwendet was auch hervorragend funktioniert hat.

PHP:
function bgcolor($row = 1) { 
    static $i; 
    static $col = array('#BEBEBE','#B0B0B0');
    $bg = $col[(int)($i + .00000001)]; 
    $i += 1 / $row; 
    if ($i >= count($col)) $i = 0; 
    return $bg;
	}

if ($data[user_aktiv] == 1){ 
print("<tr bgcolor='%s'>
<td class=\"m1txt\" style=\"height: 20px; width:60px;\">&nbsp;".$data[ident_nick]."</td>
<td class=\"m1txt\" style=\"height: 20px; width :260px;\">&nbsp;".$jobs1."".$jobs2."".$jobs3."</td>			
<td class=\"m1txt\" align=\"center\" style=\"height: 20px; width: 70px;\"><a href=\"index.php?file=intern/memdetails&user_id=".$data[user_id]."\">Details</a></td> 
</tr>\n", bgcolor(1));
}

Nur nun habe ich den alten Code "modernisiert"!

PHP:
echo'<tr bgcolor="'.$col.'"><td style="height: 20px; width: 160px;'.$style4.'">&nbsp;'.$data[ident_nick].'</td>
// usw.	
</tr>\n, bgcolor(1))';

Nur jetzt geht die Funktion nicht mehr weil ich statt print/echo(""); nun echo''; verwende. Nun wird mir auch \n, bgcolor(1) ausgegeben und die Frabe für die Tabelle wird nicht erstellt. Wie müsste ich denn \n, bgcolor(1))'; verwenden, das es nur noch ein Anhang ist?
 
Zurück