22. september 2005 - 18:11
Der er
24 kommentarer og 1 løsning
Udtræk fra database i forskellige farver
Jeg har en database hvor jeg trækker en liste ud fra med: $foresp = mysql_query("SELECT id, ip, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); while($data = mysql_fetch_row($foresp)){ $out .= '<tr><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; } $out .= '</table>'; echo $out; echo "<font face='Verdana' size='1'>I alt = $tl"; exit; For at gøre listen lidt mere overskuelig tænkte jeg på om det ikke ku lade sig gøre at lave baggrundsfarven forskellig. Så ulige datoer stod med en farve og lige datoer stod meden anden ?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
22. september 2005 - 18:17
#1
Du kan lave en 'break variabel' $break = 0; Og tjekke om ($break % 2 == 0), og hvis den er, sætter du <tr>'s baggrund til en farve, og hvis ikke, sætter du den til en anden. I slutningen af while løkken inkrementerer du så $break++; -- pacroon
22. september 2005 - 18:19
#2
øøøøøøh..... det forstod jeg ikke lige.. :o))
22. september 2005 - 18:34
#3
$break = 0; while($data = mysql_fetch_row($foresp)){ if ($break == 1) { $color = " color=\"#FFFFFF\""; } else { $color = " color=\"#FFFFFF\""; } $out .= '<tr><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; $break++; }
22. september 2005 - 18:34
#4
hov $break = 0; while($data = mysql_fetch_row($foresp)){ if ($break == 1) { $color = " color=\"#FFFFFF\""; } else { $color = " color=\"#FFFFFF\""; } $out .= '<tr".$color."><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; $break++; }
22. september 2005 - 18:45
#5
Det resulterer i en blank side. Jeg så lige at du ikke havde echo $out; med. Jeg smed den ind sådan her: $break = 0; while($data = mysql_fetch_row($foresp)){ if ($break == 1) { $color = " color=\"#FFFFFF\""; } else { $color = " color=\"#FFFFFF\""; } $out .= '<tr".$color."><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; $break++; } echo $out; Men det giver et weird resultat. Det står i éen lang vandret linie ??
22. september 2005 - 18:47
#6
I øvrigt uden anden baggrundsfarve end hvid. Og ja ja ja... jeg har ændret FFFFFF til andre farver da jeg testede :o))
22. september 2005 - 18:48
#7
$foresp = mysql_query("SELECT id, ip, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); while ($data = mysql_fetch_row($foresp)) { $DayInt = (int) date("j", $data[2]); $bgColor = ($DayInt % 2 == 0) ? "#FF000" : "#0000FF"; $out .= '<tr bgcolor="' . $bgColor . '"><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; } $out .= '</table>'; echo $out; echo "<font face='Verdana' size='1'>I alt = $tl"; exit;
22. september 2005 - 19:40
#8
Vi nærmer os :o)) Dit seneste eksempel laver samme baggrundsfarve i hele listen. Farven er taget fra den sidste af farverne i dit eksempel, altså #0000FF
22. september 2005 - 19:52
#9
Hmmm. $DayInt = (int) date("j", $data[2]); - burde ellers give dig dag-nummeret i måneden som et tal. Du ville gerne have at ulige dage skulle give dig een baggrund (f.eks. dagene 21/9 og 31/9) mens at lige dage skulle have en anden baggrund (f.eks. 10/9 og 22/9). Er det korrekt forstået?
22. september 2005 - 20:02
#10
Hvis du nu udvider: $foresp = mysql_query("SELECT id, ip, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); - til: $foresp = mysql_query("SELECT id, ip, dato, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); - og så tjekker på dato-feltet istedet for det felt som du har formateret til danske format.
22. september 2005 - 20:07
#11
... eller måske bare: $foresp = mysql_query("SELECT id, ip, Day(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); - og så tjekke direkte på "Dag" isetedet for at skulle igennem: $DayInt = (int) date("j", $data[2]);
22. september 2005 - 21:43
#12
Altså sådan her ? $foresp = mysql_query("SELECT id, ip, Day(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); while ($data = mysql_fetch_row($foresp)) { $DayInt = (int) date("j", $data[2]); $bgColor = ($DayInt % 2 == 0) ? "#ff0000" : "#ffff00"; $out .= '<tr bgcolor="' . $bgColor . '"><td><font face="Verdana" size="1">'.$data[1].'</td><td></td><td><font face="Verdana" size="1">'.$data[2].'</td><td></td><td><font face="Verdana" size="1">'.$data[3].'</td><td>'; $tl = $tl + 1; } $out .= '</table>'; echo $out; echo "<font face='Verdana' size='1'>I alt = $tl"; exit; Ovenstående finder ingen records overhovedet ??
22. september 2005 - 21:59
#13
$foresp = mysql_query("SELECT id, ip, Day(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); while ($data = mysql_fetch_row($foresp)) { $bgColor = ($data[2] % 2 == 0) ? "#ff0000" : "#ffff00"; $out .= '<tr bgcolor="' . $bgColor . '"><td><font face="Verdana" size="1">' . $data[1] . '</td><td></td><td><font face="Verdana" size="1">' . $data[3] . '</td><td></td><td><font face="Verdana" size="1">' . $data[4] . '</td><td>'; $tl = $tl + 1; } $out .= '</table>'; echo $out; echo "<font face='Verdana' size='1'>I alt = $tl"; exit;
22. september 2005 - 22:24
#14
Det er da ufatteligt. min karma må være helt i bund i aften :o)) Her er hele koden incl. seneste forslag. Men der sker intet som helst. Der står kun "I alt =", så den del fungerer jo tilsyneladende :o)) <? $db = mysql_connect("00.00.00.00", "xxx", "xxx"); mysql_select_db("xxx", $db); echo "<font size='2' face='verdana'>Counter Log:<br><br>"; $out = '<table>'; $tl = 0; $foresp = mysql_query("SELECT id, ip, Day(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc"); while ($data = mysql_fetch_row($foresp)) { $bgColor = ($data[2] % 2 == 0) ? "#99ADC9" : "#ffff00"; $out .= '<tr bgcolor="' . $bgColor . '"><td><font face="Verdana" size="1">' . $data[1] . '</td><td></td><td><font face="Verdana" size="1">' . $data[3] . '</td><td></td><td><font face="Verdana" size="1">' . $data[4] . '</td><td>'; $tl = $tl + 1; } $out .= '</table>'; echo $out; echo "<font face='Verdana' size='1'>I alt = $tl"; exit; ?>
22. september 2005 - 22:35
#15
Prøv med: $foresp = mysql_query("SELECT id, ip, Day(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM counter ORDER BY id asc") or die(mysql_error());
22. september 2005 - 22:42
#16
så får jeg følgende fejlbesked: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(dato) AS dag, DATE_FORMAT(dato, '%d-%m-%Y') AS dansk, kl FROM
23. september 2005 - 22:58
#19
I VB ville jeg ha kigget på de 2 første karakterer i datoen og så tjekket om det var lige eller ulige. I VB ville jeg ha brugt RIGHT til at se de 2 første karakterer i datoen og så tjekke med mod om et var lige eller ulige. Findes der ikke noget i stil med RIGHT i PHP, for så er jeg vel ovre det med om DAY eller DAYOFMONTH virker ? Eller er jeg lidt ude at svømme der ? :O))
23. september 2005 - 22:59
#20
LEFT... ikke RIGHT....
23. september 2005 - 23:00
#21
Doooh... Jeg er vist søvnig... I VB ville jeg ha brugt LEFT til at se de 2 første karakterer i datoen og så tjekke med MOD 2 om et var lige eller ulige. Findes der ikke noget i stil med LEFT i PHP, for så er jeg vel ovre det med om DAY eller DAYOFMONTH virker ? sådan..
23. september 2005 - 23:14
#22
PHP versionen er ligegyldig i denne sammenhæng - det er MySQL-versionen som bestemmer om den kender Day eller ej. :^)
23. september 2005 - 23:14
#23
Har du prøvet DAYOFMONTH endnu?
23. september 2005 - 23:43
#24
Det har jeg lige gjort... OG DET VIRKER :o)) Tusind tak for hjælpen... Smid straks et svar ;o)
24. september 2005 - 08:43
#25
Svar :^)
Vi tilbyder markedets bedste kurser inden for webudvikling