簡體   English   中英

生成Jquery Flot的記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM