0
我想把所有mySql結果放在一個html表中。這是MySQL的:從mysql進入html表的每一天的每一天計數記錄
SELECT date(vwr_date) AS mon, date(vwr_date) AS date, count(vwr_cid) AS views
FROM car_viewer
WHERE Year(vwr_date)='2012' AND vwr_tid='18'
GROUP BY date
ORDER BY date DESC
從上面的查詢,它的結果是這樣的:
date views
2012-10-23 14
2012-10-22 339
2012-10-21 305
2012-10-20 354
....
2012-10-01 291
2012-09-30 246
2012-09-29 297
...
2012-09-01 281
從MySQL結果是非常好的。現在這是一個問題。我嘗試了很多次和不同的方式,根據car_viewer.vwr_date中的每個日期放入這些視圖。所以我這樣寫:
<table border="0" cellpadding="3" cellspacing="1" width="100%">
<thead>
<tr>
<th>Mon Year/Date</th>
<?
for($i=1;$i<32;$i++){
echo "<th>$i</th>";
}
?>
</tr>
</thead>
<tbody>
<?
$_thisYear=date("Y");
$sql_nViewer="select date(vwr_date) as mon, date(vwr_date) as date, count(vwr_cid) as views from car_viewer where Year(vwr_date)='$_thisYear' and vwr_tid='$_SESSION[admin_id]' GROUP BY date ORDER BY date desc";
echo $sql_nViewer;
$result_nViewer=mysql_db_query($dbname,$sql_nViewer);
$rec_nViewer=mysql_fetch_array($result_nViewer);
$_monYear=date("M Y",strtotime($rec_nViewer[mon]));
$_monYear2=date("Y-n",strtotime($rec_nViewer[mon]));
echo "<tr><td>$_monYear</td>";//month name
$day=1;
while($rec_nViewer=mysql_fetch_assoc($result_nViewer)){
$_nViewerDBdate=$rec_nViewer['date'];
$_nViewerDBviews=$rec_nViewer['views'];
echo "
<td>$_nViewerDBviews</td>
";$day++;
if($day==$_daysInMon+1){
echo "</tr>";
}
}
?>
</tbody>
</table>
上面的代碼的結果是奇怪的 - 不是我想要的。我需要顯示的數據是這樣的:
所以請建議我該怎麼做才能達到我的預期。問候
我已經得到了錯誤的返回結果: '#1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'GROUP_CONCAT(IF(day_v = 1,views,null)'附近使用正確的語法)AS'1',GROUP_CONCAT(IF(day_v = 2,views,n'at line 2' – Wilf
然後,我認爲這可能是一些問題的遺漏或逗號,然後我有:'#1248 - 每個派生表必須有自己的別名 – Wilf