Jadå. :)
$i = 0;
while ( $curRow = mysql_fetch_array ( $mysqlResult ) ) {
echo "<tr style=\"background-color: ";
if ( $i++ % 2 == 0 )
echo "black";
else
echo "white";
...
}
5 svar · 334 visningar · startad av Jester
Hej
Är det någon som har något bra förslag på hur man får en "varannan" bakgrundsfärg i en lista?
Informationen hämtas från en mySQL databas och presenteras med en tabell.
Tack på förhand!
Jester
Jadå. :)
$i = 0;
while ( $curRow = mysql_fetch_array ( $mysqlResult ) ) {
echo "<tr style=\"background-color: ";
if ( $i++ % 2 == 0 )
echo "black";
else
echo "white";
...
}
Mitt förslag
<?
$sql = "SELECT * FROM tabell ";
$resultat = @mysql_query($sql) or die ("Kunde inte hämta dina uppgifter.");
$varannan = "2";
?>
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="2" WIDTH="100%" bgcolor="#cccccc" align="center">
<TR bgcolor="#202020">
<TD align="center">Test</td>
</TR>
<?
while ( $rad = mysql_fetch_array($resultat)) {
if ($varannan == "1") {
$farg = "#eeeeee";
$varannan = "2";
} else {
$farg = "#ffffff";
$varannan = "1";
}
?>
<TR bgcolor="<?=$farg;?>">
<td align="center" nowrap><?=$rad[text];?></td>
</TR>
<?
}
?>
</TABLE>
% är modulus-operatorn i PHP ( Även Java, C, C++, m.fl. ) och den lämnar restvärde på en division.
Lite värden på $i:
$i = 0;
$i % 2 = 0 ( Här stämmer if-satsen )
$i = 1;
$i % 2 = 0,5 ( Här stämmer inte if-satsen )
$i = 2;
$i % 2 = 0 ( Här stämmer if-satsen )
$i = 3;
$i % 2 = 1 ( Här stämmer inte if-satsen )
$i = 4;
$i % 2 = 0 ( Här stämmer if-satsen )
% 2 matchar alltså varannat tal, eftersom att varannat tal i talföljden är delbart med 2. Är siffran innan % delbar med 2, så blir resultatet 0 - ingen rest. 3 % 2 returnerar 1 rest, eftersom att 3 endast kan delas med 2 en gång, och då är det 1 rest.
Hoppas du hängde med. :)
LeCool
Tackar!
Jag hängde faktiskt med i ditt resonemang där. :)
Skall genast exprimentera :)
Mvh
Jester