26. januar 2005 - 13:20
Der er
19 kommentarer og 1 løsning
forskellig baggrundsfarve en en table fra sql udtræk
Hej, Igen et lille problem jeg har. Hvorledes kan man lave én baggrundfarve på den første række man trækker ud fra MySQL og så række 2 en anden og række 3 en tredje. f.eks <tr> <td bgcolor="CCCCCC">række1</td> </tr> <tr> <td bgcolor="E7E7E7">række2</td> </tr> <tr> <td bgcolor="FFFFFF">række3 og andre</td> </tr>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
26. januar 2005 - 13:38
#1
Jeg benytter ofte: $color = ($i++ % 2==0 ? "#FFFFFF" : "#E0E0E0");
26. januar 2005 - 13:40
#2
Eksempel: $result = mysql_query("SELECT * FROM mintabel;"); $i = 0; while ($row = mysql_fetch_row($result)) { $color = ($i++ % 2==0 ? "#FFFFFF" : "#E0E0E0"); //Benyt $color som bgcolor i td }
26. januar 2005 - 13:41
#3
En anden mulighed er at benytte en int som tælles op pr række og regne sig frem til en farve.
26. januar 2005 - 13:48
#4
Det er nemlig noget i den dur! Altså f.eks: række 1 er grøn række 2 er rød række 3-10 er hvid række 11-12 er sort
26. januar 2005 - 13:51
#5
Jeg skrev lige følgende kode: <table width=400> <? for ($i = 0; $i < 5; $i++) { $str = $i / 3; list($start, $slut) = split(".", $str, 2); if ($slut == "") { $color = "red"; } else if ($slut[1] == "3") { $color = "green"; } else if ($slut[1] == "6") { $color = "blue"; } echo "<tr><td bgcolor=".$color.">?</td></tr>"; } ?> </table> Koden er ikke ligefrem "pæn kode" - men det virker trods alt. Kan du bruge noget af ovenstående?
26. januar 2005 - 14:11
#6
Koden virker faktisk med copy-paste som jeg vil ha' det, men ikke lige til det kode jeg selv har skrevet: while ($row = mysql_fetch_array($result)) { ?> <tr> <td bgcolor="<?php print $color; ?>"><?php print $row['team']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['matches']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['won']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['draw']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['lost']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['goalsf']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['goalsa']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['goaldif']; ?></td> <td bgcolor="<?php print $color; ?>"><?php print $row['points']; ?></td> </tr> <? } mysql_close(); ?>
26. januar 2005 - 14:14
#7
Kan lige tilføjes at den skal gøre det samme hvadenten der er 10 rækker eller 28
26. januar 2005 - 14:17
#8
Jeg forstår ikke lige hvad du vil have så? BTW du behøver ikke skrive <?php print $color; ?> - du kan nøjes med <?=$color?>
26. januar 2005 - 14:18
#9
Skal $color være ens for alle de 9 td'er du har skrevet længere oppe?
26. januar 2005 - 14:23
#11
Den øverste eller nederste?
26. januar 2005 - 14:24
#12
Den øverste. Selve placeringstabellen
26. januar 2005 - 14:25
#13
Ok. Nu er jeg ikke så meget inde i sport, men kan man opsætte en gyldenregel, altså: 1. plads: rød 2. plads: gul anden sidste plads: grøn sidste plads: blå og alle imellem er hvide? Eller sådan noget?
26. januar 2005 - 14:27
#14
Jeps... Lige præcis Så at man kan se at nummer 1 bliver mester (grøn) nummer 2 og 3 skal spille europæiske turneringer (orange). De 2 sidste rykker ned (rød) og resten derimellem er blot placeret (hvide)
26. januar 2005 - 14:28
#15
Hvis det altid er sådan så kan det forholdsvis kodes simpelt.
26. januar 2005 - 14:31
#16
Den skal nemlig altid fungere således, men i f.eks. den danske lige er der 12 hold og i den engelske er der 20 hold, men stadig det samme for 1 - 2 & 3 og andensidste og sidste
26. januar 2005 - 14:32
#17
<table width=400> <? $i = 1; $antal = 24; $j = 0; while ($j < $antal) { if ($i == 1) { $color = "green"; } else if ($i == 2 ||$i == 3) { $color = "orange"; } else if ($i == $antal - 1 || $i == $antal) { $color = "red"; } else { $color = "#EEEEEE"; } echo "<tr><td bgcolor=".$color.">?</td></tr>"; $j++; $i++; } ?> </table> Prøv at ændre $antal
26. januar 2005 - 14:34
#18
$j bruges kun til at skabe en løkke med. Hvis du poster dit source, kan jeg god rette det til.
26. januar 2005 - 14:43
#19
AWESOME work tigertool :) Det virker perfekt!!! Mange takker! Smid lige et svar så er der point til dig! Igen! Mange tak!
26. januar 2005 - 14:45
#20
Var så lidt.
Vi tilbyder markedets bedste kurser inden for webudvikling