zahl gerade oder ungerade

blubber

Erfahrenes Mitglied
Hi,

ich möchte eine auflistung von daten (untereinander) farblich trennen. ich hab mir gedacht, dass ich z.B. einfach sag, alle ungeraden IDs sollen eine hintergrundfarbe xxxxxx haben, und alle geraden IDs die hintergrundfarbe yyyyyy. Also in der Tabelle.

Nun bräuchte ich sozusagen die funktion, die genau das macht.

if (id = gerade)
{bgcolor="#000000"}
else
{bgcolor="#FFFFFF")

Vom Sinn her gesehn.

geht das?

bye
 
PHP:
if ($id%2 == 0)
{
  // gerade
}
else
{
  // ungerade
}
Probleme gibt's allerdings, wenn Lücken bei den IDs entstehen... dann können schon mal zwei nachfolgende Zeilen die selbe Farbe haben.


reima
 
Oder alternativ $counter mitzählen lassen. Und den überprüfen ober er gerade oder ungerade ist!

So Long
TheVirus
 
Hmm...also ich mach das immer mit ner Schleife:

PHP:
<?php

while ($i<$id[row]){

if ($count==1){
$bgcolor="#FFFFFF";
$count="0";
}
else{
$bgcolor="#000000";
$count="1";
}
 
echo "<td bgcolor=\"$bgcolor\>Inhalt</td>";
$i++;
}

?>
 
@ reima:

ich hab das mal nach deinem Vorschlag probiert, aber funzt irgendwie net, vielleicht mach ich auch was falsch :)
so siehts jedenfalls aus:

<tr
if ($links[id]%2 == 0)
{
bgcolor=\"#ff0000\"
}
else
{
bgcolor=\"#00ff00\"
}
>

<td>...........</td>
<td>...........</td>
<td>...........</td>

</tr>

meine variable heisst $links[id]
so macht er mir aber jede zeile der tabelle rot.
 
Also....da fehlt ja komplett sowas wie echo etc. du musst PHP ja anweisen das es auch dein Ergebnis (in deinem Fall die HG-Farbe) ausgibt...

<tr
if ($links[id]%2 == 0)
{
echo "bgcolor=\"#ff0000\"";
}
else
{
echo "bgcolor=\"#00ff00\"";
}
>
 
Das Problem habe ich mit bcmod gelöst:


$num = bcmod($id,2);

if($num==1)
{
$bgcol = "#000000";
}
else
{
$bgcol = "#222200";
}
 
Du musst das ganze natürlich auch in eine schleife bauen!

PHP:
$counter = 0;
while ($links = mysql_fetch_array ($dein_result))
{
  if ($counter%2 == 0) 
  { 
    $bgcolor=\"#ff0000\" 
  } 
  else 
  { 
    $bgcolor=\"#00ff00\" 
  }
  echo ("<tr><td bgcolor=".$bgcolor.">".$links["inhalts_feld"]."</td></tr>");
  $counter ++;
}

Das sollte es tun. Wobei inhalts_feld das ist Feld in deiner Tabelle (Datenbank) ist welches den text enthält der hier ausgegeben werden soll.

@AnAmiC:
bcmod ist das gleiche wie %. Beide bestimmten den Divisionsrest (Modulo) von zwei Intergern.

So Long
TheVirus
 
Zurück