Avatar billede avminarm Juniormester
27. november 2002 - 11:12 Der er 14 kommentarer og
1 løsning

Hver anden række i en farve

Når man henter allr rækker i en MySQL db gør man sådan

$res = mysql_query("SELECT * FROM names");
while($row = mysql_fetch_array($result)) {
  print "<tr><td bgcolor=\"0000FF\">".$row["firstname"]."</td><tr>";
}

Hvordan får jeg den til at skrive hver anden række ud med en anden farve f.eks FFFFFF som celle bagrunds farve
Avatar billede kennie_nm Nybegynder
27. november 2002 - 11:15 #1
brug rækkenummer mod 2 (kender ikke PHP syntax):

if rækkenummer mod 2 = 0 then
  $color = "0000FF"
else
  $color = "FFFFFF"
end if

print "
Avatar billede Søren Bech Morsing Praktikant
27. november 2002 - 11:15 #2
<tr bgcolor="#FFFFFF">
Lav en variabel der tæller 1 op for hver række du udskriver
Brug så
hvis (variabel MODULUS 2 = 0) udskriv din farve
Avatar billede kennie_nm Nybegynder
27. november 2002 - 11:16 #3
print "<tr><td " . $color . "=\"0000FF\">".$row["firstname"]."</td><tr>";
Avatar billede barlach Nybegynder
27. november 2002 - 11:17 #4
$i=0;
$res = mysql_query("SELECT * FROM names");
while($row = mysql_fetch_array($result)) {
($i % 2 ? $bgcolor="#E7E7E7" : $bgcolor="#FFFFFF");
  print "<tr><td bgcolor=\"$bgcolor\">".$row["firstname"]."</td><tr>";
$i++;
}
Avatar billede avminarm Juniormester
27. november 2002 - 11:26 #5
kennie_nm+sbk>> kan i skrive det ind i eksemplet eller vil det ligen barlach's?? - jeg er ikke helt sikker på hvad i menermed rækkenummer mod 2?
MODULUS ??

barlach>> jeg kan godt se hvor du vil hen, men gider du forklare denne linie (det er nok min viden der ikke rækker langt nok):
($i % 2 ? $bgcolor="#E7E7E7" : $bgcolor="#FFFFFF");
Avatar billede barlach Nybegynder
27. november 2002 - 11:34 #6
% er modulus i PHP
$i er counteren der tæller op...
hvis $i modulus 2 er 0 bliver $bgcolor="#e7e7e7"
ellers er $bgcolor= hvid

Det er det samme som de andre har beskrevet...
Avatar billede thomasmlarsen Nybegynder
27. november 2002 - 11:38 #7
Det kan også skrives sådan her:
$color  = $q++ % 2 ? '#E7E7E7' : '#FFFFFF' ;
echo "<tr><td bgcolor="$color"> osv...
Avatar billede thomasmlarsen Nybegynder
27. november 2002 - 11:39 #8
okay.... det er faktisk det samme som Barlachs forslag... =o)
Avatar billede avminarm Juniormester
27. november 2002 - 11:41 #9
barlach>> jeg vil gerne forstå hele linien er det en koreter måde at skrive if/else på ?? og Hvad er MODULUS ??? - hvorfor kan mna ikke bruge /
Avatar billede avminarm Juniormester
27. november 2002 - 11:45 #10
aha - modulus af 5%2 giver 0,5 eller hvad ?
Avatar billede mfalck Praktikant
27. november 2002 - 11:53 #11
modulus er resten i helttal ved heltalsdivision af de to tal:
0%2 = 0 (optil 2 (det som der divideres med) er tallene uændrede)
1%2 = 1
2%2 = 0 (2 divideret med 2 giver ikke nogen rest)
3%2 = 1 (3 divideret med 2 giver 1)
4%2 = 0 (2*2 er 4)
5%2 = 1 (fordi 2*2 = 4 så er der 1 til rest)
Avatar billede barlach Nybegynder
27. november 2002 - 11:54 #12
du kan godt skrive if/else. den linie jeg har skrevet er bare en kortere måde at skrive det på.
det første , $i%2, er det der skal evalueres. hvis det er sandt bliver det første efter ? ,$bgcolor="#E7E7E7" sat
hvis det er falsk bliver det der står efter : sat som værdien.

for mere om modulus må du hellere åbne en matematik bog ...
Avatar billede avminarm Juniormester
27. november 2002 - 12:01 #13
mfaclk>> TAK,nu dukkede der lidt op i "øverste etage" fra gymnasietiden ;-)

barlach>>TAK - ved du hvor jeg kan læse mere om den "forkortede form" af if/else i manualen ?

kennie_nm>> håber det er ok med dig at barlach får points
Avatar billede barlach Nybegynder
27. november 2002 - 12:31 #14
Avatar billede avminarm Juniormester
27. november 2002 - 12:59 #15
TAK IGEN ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester