grrraaagh Posted August 31, 2007 Share Posted August 31, 2007 Please note this is not the frequent 'how do i colour rows alternately' question that you see across the internet. Upon displaying a sports league table i wish for the top two rows to have a certain background colour. The next two rows to be a different shade again. This would help highlight, for instance, that the top two teams qualify direct to the finals of a coompetition, whilst the third and fourth placed teams go into a play-off match for the third qualifying slot. The rest of the table would just be the default colour (white). I've Googled for hours and exhaustively tried every function i could find, all without success. <html><body> TABLES TEST<BR> <H3>Group A</H3> <?php $conn=mysql_connect("localhost", "server", "password") or die ("could not connect"); $rs=mysql_select_db("database", $conn)or die ("could not connect to database"); $sql=stripslashes("SELECT `stage`,`team`,`p`,`pts`,`w`,`d`,`l`,`gf`,`ga`, (gf - ga) AS 'gd' FROM `lgtables` WHERE `stage` LIKE 'GP A' ORDER BY 'pts' desc, 'gd' desc"); $rs=mysql_query($sql,$conn) or die("could not execute query because ".mysql_error()); $list="<table border=\"1\" cellpadding=\"2\">"; $list.="<tr><th>Team</th>"; $list.="<th>P</th>"; $list.="<th>PTS</th>"; $list.="<th>W</th>"; $list.="<th>D</th>"; $list.="<th>L</th>"; $list.="<th>GF</th>"; $list.="<th>GA</th>"; $list.="<th>GD</th></tr>"; while($row=mysql_fetch_array($rs)) { $list.="<tr bgcolor=\"#ffcc99\">"; $list.="<td><b>".$row["team"]."</b></td>"; $list.="<td><center><b>".$row["p"]."</b></center></td>"; $list.="<td><center><b>".$row["pts"]."</b></center></td>"; $list.="<td><center>".$row["w"]."</center></td>"; $list.="<td><center>".$row["d"]."</center></td>"; $list.="<td><center>".$row["l"]."</center></td>"; $list.="<td><center>".$row["gf"]."</center></td>"; $list.="<td><center>".$row["ga"]."</center></td>"; $list.="<td><center><b>".$row["gd"]."</b></center></td>"; $list.="</tr>"; } $list.="</table>"; echo($list); ?> </body></html> I've tried various formulas around firstly stating that $row_color1 = "#ffcc99"; $row_color2 = "#ffcc66"; Thereafter, i've tried a bewildering array of tailoring suggestions for 'alternate rows' from the internet. These have used $row_count, $mysql_num_rows, 'if' statements, 'else if' statements etc. I finally gave up when the 'mysql_if_this_does_not_work_i'll_jump_off_a_very_high_building' function also failed to work. Quote Link to comment https://forums.phpfreaks.com/topic/67395-set-color-of-top-rows-this-is-not-the-alternate-rows-question/ Share on other sites More sharing options...
pocobueno1388 Posted August 31, 2007 Share Posted August 31, 2007 Give this method a try: <html><body> TABLES TEST<BR> <H3>Group A</H3> <?php $conn=mysql_connect("localhost", "server", "password") or die("could not connect"); $rs=mysql_select_db("database", $conn)or die("could not connect to database"); $sql=stripslashes("SELECT `stage`,`team`,`p`,`pts`,`w`,`d`,`l`,`gf`,`ga`, (gf - ga) AS 'gd' FROM `lgtables` WHERE `stage` LIKE 'GP A' ORDER BY 'pts' desc, 'gd' desc"); $num = mysql_num_rows($sql); $rs=mysql_query($sql,$conn) or die("could not execute query because ".mysql_error()); $list="<table border=\"1\" cellpadding=\"2\">"; $list.="<tr><th>Team</th>"; $list.="<th>P</th>"; $list.="<th>PTS</th>"; $list.="<th>W</th>"; $list.="<th>D</th>"; $list.="<th>L</th>"; $list.="<th>GF</th>"; $list.="<th>GA</th>"; $list.="<th>GD</th></tr>"; for ($i=1; $i<$num; $i++) { $row = mysql_fetch_assoc($sql); if ($i == 1 || $i == 2) $bg = '#ffcc99'; else if ($i == 3 || $i == 4) $bg = '#ffcc66'; else $bg = 'white'; $list.="<tr bgcolor=\"$bg\">"; $list.="<td><b>".$row["team"]."</b></td>"; $list.="<td><center><b>".$row["p"]."</b></center></td>"; $list.="<td><center><b>".$row["pts"]."</b></center></td>"; $list.="<td><center>".$row["w"]."</center></td>"; $list.="<td><center>".$row["d"]."</center></td>"; $list.="<td><center>".$row["l"]."</center></td>"; $list.="<td><center>".$row["gf"]."</center></td>"; $list.="<td><center>".$row["ga"]."</center></td>"; $list.="<td><center><b>".$row["gd"]."</b></center></td>"; $list.="</tr>"; } $list.="</table>"; echo($list); ?> </body></html> Quote Link to comment https://forums.phpfreaks.com/topic/67395-set-color-of-top-rows-this-is-not-the-alternate-rows-question/#findComment-338359 Share on other sites More sharing options...
grrraaagh Posted August 31, 2007 Author Share Posted August 31, 2007 Your reply looked really promising, and gave me food for thought in trying new angles on the problem. The logic of it reads to me - a novice - as seeming to be just the job. Unfortunately, upon trying your solution it just offered up the table headings with a white background. I then inserted a section of code that was removed from your sample namely, while($row=mysql_fetch_array($rs)) { as it threw me that your code slotted straight between the two Slist sections. However, i was obviously wrong in adding that as i received an error stating 'Parse error: parse error, unexpected $ in ...... on line 45 ' Give this method a try: <html><body> TABLES TEST<BR> <H3>Group A</H3> <?php $conn=mysql_connect("localhost", "server", "password") or die("could not connect"); $rs=mysql_select_db("database", $conn)or die("could not connect to database"); $sql=stripslashes("SELECT `stage`,`team`,`p`,`pts`,`w`,`d`,`l`,`gf`,`ga`, (gf - ga) AS 'gd' FROM `lgtables` WHERE `stage` LIKE 'GP A' ORDER BY 'pts' desc, 'gd' desc"); $num = mysql_num_rows($sql); $rs=mysql_query($sql,$conn) or die("could not execute query because ".mysql_error()); $list="<table border=\"1\" cellpadding=\"2\">"; $list.="<tr><th>Team</th>"; $list.="<th>P</th>"; $list.="<th>PTS</th>"; $list.="<th>W</th>"; $list.="<th>D</th>"; $list.="<th>L</th>"; $list.="<th>GF</th>"; $list.="<th>GA</th>"; $list.="<th>GD</th></tr>"; for ($i=1; $i<$num; $i++) { $row = mysql_fetch_assoc($sql); if ($i == 1 || $i == 2) $bg = '#ffcc99'; else if ($i == 3 || $i == 4) $bg = '#ffcc66'; else $bg = 'white'; $list.="<tr bgcolor=\"$bg\">"; $list.="<td><b>".$row["team"]."</b></td>"; $list.="<td><center><b>".$row["p"]."</b></center></td>"; $list.="<td><center><b>".$row["pts"]."</b></center></td>"; $list.="<td><center>".$row["w"]."</center></td>"; $list.="<td><center>".$row["d"]."</center></td>"; $list.="<td><center>".$row["l"]."</center></td>"; $list.="<td><center>".$row["gf"]."</center></td>"; $list.="<td><center>".$row["ga"]."</center></td>"; $list.="<td><center><b>".$row["gd"]."</b></center></td>"; $list.="</tr>"; } $list.="</table>"; echo($list); ?> </body></html> Quote Link to comment https://forums.phpfreaks.com/topic/67395-set-color-of-top-rows-this-is-not-the-alternate-rows-question/#findComment-338372 Share on other sites More sharing options...
grrraaagh Posted August 31, 2007 Author Share Posted August 31, 2007 Triumphantly, i declare that the solution to the problem is as follows; <html><body> TABLES TEST<BR> <H3>Group A</H3> <?php $conn=mysql_connect("localhost", "server", "password") or die ("could not connect"); $rs=mysql_select_db("database", $conn)or die ("could not connect to database"); $sql=stripslashes("SELECT `stage`,`team`,`p`,`pts`,`w`,`d`,`l`,`gf`,`ga`, (gf - ga) AS 'gd' FROM `lgtables` WHERE `stage` LIKE 'GP A' ORDER BY 'pts' desc, 'gd' desc"); $rs=mysql_query($sql,$conn) or die("could not execute query because ".mysql_error()); $list="<table border=\"1\" cellpadding=\"2\">"; $list.="<tr><th>Team</th>"; $list.="<th>P</th>"; $list.="<th>PTS</th>"; $list.="<th>W</th>"; $list.="<th>D</th>"; $list.="<th>L</th>"; $list.="<th>GF</th>"; $list.="<th>GA</th>"; $list.="<th>GD</th></tr>"; $counter = 1; while($row=mysql_fetch_array($rs)) { switch($counter++) { case 1: case 2: $color = '#ffcc99'; break; case 3: case 4: $color = '#ffcc66'; break; default: $color = '#ffffff'; } $list.="<tr style='background-color: $color'>"; $list.="<td><b>".$row["team"]."</b></td>"; $list.="<td><center><b>".$row["p"]."</b></center></td>"; $list.="<td><center><b>".$row["pts"]."</b></center></td>"; $list.="<td><center>".$row["w"]."</center></td>"; $list.="<td><center>".$row["d"]."</center></td>"; $list.="<td><center>".$row["l"]."</center></td>"; $list.="<td><center>".$row["gf"]."</center></td>"; $list.="<td><center>".$row["ga"]."</center></td>"; $list.="<td><center><b>".$row["gd"]."</b></center></td>"; $list.="</tr>"; } $list.="</table>"; echo($list); ?> </body></html> Quote Link to comment https://forums.phpfreaks.com/topic/67395-set-color-of-top-rows-this-is-not-the-alternate-rows-question/#findComment-338385 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.