problem mit dynamischen farben ...

fluid

Mitglied
hi

ich habe folgendes problem ich habe in meiner shoutbox abwechselnde tabellen farben funktioniert soweit auch perfekt . hier mal der source .
PHP:
$i = 0;
while ($row=mysql_fetch_array($view)){
$id = "".$row['shoutid']."";

$i++;        
if($i%2) 
          { 
          $color="666666"; 
          }
          else
          {
          $color="CCCCCC"; 
          }

nur jetzt das was mich stört in der ersten zeile ist immer #666666
in der zweiten #CCCCCC wenn ich nen neuen eintrag hinzufüge bleibt das so wenn ich jetzt aber anstatt $i die $id benutze ist erst #666666 in der ersten zeile wenn ich dann einen neuen eintrag hinzufüge #CCCCCC so wie ich es gerne haben möchte nur die id möchte ich nicht so gerne benutzen falls ich mal was rauslöche wären die farben durcheinander ...

hoffentlich hab ich das jetzt einigermaßen verständlich erklärt ...

cu
 
hab ich das richtig verstanden dass du bei jedem neuen beitrag eine ander Farbe am anfang haben möchtest ?
dann zähle doch einfach wieviele beiträge insgesammt in deiner mysql Tabelle stehen:
PHP:
$result = mysql_query('select * from tabelle');
$i = mysql_num_rows($result);
jetzt hängt die "startfarbe" nur noch davon ab ob die Anzahl der gesammten beiträge gerad oder ungerade ist...

tob
 
wozu %

kleine frage die gehört zwar nich zum thema aber es interesiert mich...
wozu is das %-Zeichen in der if abfrage?
danke jetzt schonmal
 
wenn der rest von $i/2 gleich 0 ist, ganz korrekt *klugscheiss*

Dein Problem habe ich zwar verstanden, aber tobs lösung nicht also, du willst einfach die farbe des 1. eintrags verdrehen, die durch $i ergeben wird.

Bis jetzt hast du $i++, was heisst, das er $i immer erst nach der anweisung eins hochzählt, und somit $i das erste mal 1 im zweiten durchgang ist. Wenn du nicht $i++ sondern ++$i schreibst, sollte dein problem behoben sein.

(bin mir nicht 100% sicher, das ist zumindest in C so, in php auch, nehme ich doch mal an)

edit:
Du könntest natürlich auch $i einfach auf 1 setzen, doer die farben andersrum schreiben :p
 
Wie ihr versteht meine Loesung nicht ?!?! Vieleicht verstehe ich auch das problem nicht...
so sieht das dann aus wenn es in dein beispiel eingebaut wird:
PHP:
$result = mysql_query("select * from SHOUT_TABELLE");
$i = mysql_num_rows($result);

while ($row=mysql_fetch_array($view)){
$id = "".$row['shoutid']."";
$i++;       
if($i%2)
          {
          $color="666666";
          }
          else
          {
          $color="CCCCCC";
          }
}
das sollte mit jedem neuen shout eine andere Farbe als erste ergeben.

tob
 
$i = mysql_num_rows($result);
wieso ?

was spricht gegen $i = 0 ?


Und, von meinen 3 varianten funktionieren alle 3, das ist doch logisch

hö, seltsame sache ...
 
Zurück