webForumDet fria alternativet

Alternerande BG färg i tabell

PHP

5 svar · 332 visningar · startad av Jester

Medlem sedan sep. 200188 inlägg
Frågan#1

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

Medlem sedan mars 20007 896 inlägg
#2

Jadå. :)

$i = 0;
while ( $curRow = mysql_fetch_array ( $mysqlResult ) ) {
     echo "<tr style=\"background-color: ";

     if ( $i++ % 2 == 0 )
           echo "black";
     else
           echo "white";
     ...
}
Medlem sedan sep. 200188 inlägg
#3

Tackar

Jag undrar bara vad "%2" betyder i If satsen.
Har aldrig sett det förut.

Mvh
Jester

Medlem sedan okt. 20001 285 inlägg
#4

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>
Medlem sedan mars 20007 896 inlägg
#5

% ä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. :)

Medlem sedan sep. 200188 inlägg
#6

LeCool

Tackar!

Jag hängde faktiskt med i ditt resonemang där. :)

Skall genast exprimentera :)

Mvh
Jester

251 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)