[英]Generate records for Jquery Flot
VISITORS TBL
ID product_id hits date
130 1 1 2012-08-11
94 810 53 2012-08-06
95 810 32 2012-08-07
96 810 22 2012-08-09
97 810 13 2012-08-10
98 810 16 2012-08-11
99 810 13 2012-08-22
我有上面的訪客MySQL訪客表格。 計划使用Jquery Flot為最近30天的訪客繪制折線圖。
應生成30條記錄,分別為[1、0],[2、0],[3、0],[4、0],[5、0],[6、53],[7、32],[8, 0],[9、22] ...... [30、0]如何使用mysql和php在30天內生成product_id = 810的列表? 我可以在單個SQL查詢中執行嗎? 或使用php循環?
我不知道是否有僅MySQL的方式可以做到這一點,但這肯定行得通(盡管它草率且使用了已棄用的MySQL / PHP函數)
<?
$rs = mysql_query("SELECT hits,date FROM visitors WHERE product_id=81 AND date BETWEEN 2012-08-01 AND 2012-08-31 ORDER BY date ASC");
$flot = array();
$last_date = '2012-08-00';
$day = 1;
if ($rs && mysql_num_rows($rs)) {
while ($row = mysql_fetch_array($rs)) {
$days_since = check_days_since($row['date'], $last_date);
print $row['date'] . '|' . $last_date . '|' . $days_since . "\n";
if ($days_since) {
for ($i = 1; $i < $days_since; $i++) {
$flot[] = array($day++, 0);
}
}
$flot[] = array($day++, $row['hits']);
$last_date = $row['date'];
}
}
print json_encode($flot);
function check_days_since($new, $old) {
if (!$new || !$old) return 1;
return (strtotime($new) - strtotime($old)) / (60*60*24);
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.