Yet even more ways to do it:
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$bgcolor = ($i++ & 1) ? '#ffffff' : '#000000';
}
Or more then two:
$colors = array('black','green','blue','yellow');
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$bgcolor = $colors[$i++ % 4];
}
The first used &, which is a bitwise operator. See
also the following faqt:
How can I show rows from a database in a table with
alternating colors?
http://www.faqts.com/knowledge_base/view.phtml/aid/783
Regards,
Philip Olson
On Fri, 10 May 2002, Miguel Cruz wrote:
> While everyone's kicking in ideas...
>
> I don't think modulus (as someone else suggested) is that expensive, but I
> think this is the cheapest:
>
> $evenodd = 0;
> $color[0] = '#cccccc';
> $color[1] = '#999999';
> while ($row = mysql_fetch_row($st))
> {
> print "<tr><td bgcolor={$color[$evenodd]}>{$row['whatever']}</td></tr>";
> $evenodd = 1 - $evenodd;
> }
>
> miguel
>
> On Fri, 10 May 2002, Jay Blanchard wrote:
>
> > [snip]
> > Is there a way for me to do one of the following:
> >
> > 1) Test to see if $i is an even or odd number?
> > 2) Grab more than one line from the database at a time, and just put in two
> > table rows at once?
> > [/snip]
> >
> > <?
> > $rowcount = 0;
> > while($dbrowa = mysql_fetch_object($dbseta)){
> > $dbrowb = mysql_fetch_object($dbsetb);
> > //change the color of alternating rows
> > $rowcount ++;
> > if ($rowcount == 1){
> > print("<tr bgcolor=\"#FFFF99\">\n");
> > }
> > elseif ($rowcount <> 1) {
> > print("<tr>\n");
> > $rowcount = 0;
> > }
> >
> >
> > This way you don't have to know even or odd.
> > $rowcount is 0
> > $rowcount is set to one and printed in a different color
> > $rowcount is set to two, which is not equal to one, so does elseif and is
> > set to zero
> >
> > HTH!
> >
> > Jay
> >
> >
> >
> >
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php