2012-10-19 69 views
-1

,我們有以下爲報告代理數據庫的SQL代碼..SQL報告顏色

<?php 
$sql=mysql_query("SELECT Name, sum(Points)AS Total_Points 
FROM`allagentper` 
GROUP BY Name 
ORDER BY Points DESC "); 
print"<table >"; 
print"<tr><th>Name</th><th>Points</th></tr>"; 
while($row=mysql_fetch_assoc($sql)) 
{ 
print"<tr>"; 
foreach($row as $value) 
{ 

print"<td>"; 
echo $value ; 
print "</td>"; 
} 

print"</tr>"; 

} 

print"</table>"; 


mysql_close($con); 



?> 

顯示爲以下類型的最終報告:

Name points 
abc  78 
dks  65 
sge  64 
sdf  62 <= Blue 
ssr  62 <= Blue 
eew  60 <= Blue 
asw  60 <= Blue 

我需要上色行的表,每3行中SQL。前3行將是紅色的。第三排會變藍。但條件是如果點是相同的,它應該只採取相同的顏色..如果你看到上述報告的例子,sdf,ssr,eew是藍色的。但asw也與eew相同,所以最後4行應該是藍色。

回答

0

我會做這樣的事情

<?php 
$sql=mysql_query("SELECT name, sum(Points)AS total_points 
FROM`allagentper` 
GROUP BY Name 
ORDER BY Points DESC "); 
print"<table >"; 
print"<tr><th>Name</th><th>Points</th></tr>"; 
$rowCounter = 0; 
$previousTotal = -9999999; 
while($row=mysql_fetch_assoc($sql)) 
{ 

if($rowCounter % 6 > 3) 
{ 
$color = "#FF0000"; 
} 
else 
{ 
$color = "#0000FF"; 
} 

print"<tr>"; 
print"<td>".$row->name."</td>"; 
print"<td style='color:".$color."'>".$row->total_points."</td>"; 
print"</tr>"; 

if($row->total_points != $previousTotal) 
{ 
rowCounter++; 
} 
$previousTotal = $row->total_points; 
} 

print"</table>"; 
mysql_close($con); 
?> 
+0

它不會增加rowcounter如果值是一樣的最後的值,所以顏色保持不變 – Niels