jQuery Flot - 强制轴值

时间:2014-11-11 14:17:59

标签: jquery mysql flot

我试图用jQuery flot显示网站点击量。 问题:任何一天都没有点击。 示例(一周): 星期一 - 2 星期二 - 12 星期三 - 0 ..... 星期天 - 0

我使用以下语句从我的数据库中获取数据:

var pageviews = [
            <?php                               
                $query = "SELECT DAY(`h_date`) AS day, COUNT(*) as zugriffe FROM hits WHERE h_server = $serverID AND WEEK(`h_date`,3) = '$selectKW' GROUP BY day";

                $mydb->query($query);
                $wCount = 0;
                while ($row = $mydb->fetchRow()){
                    $wCount++;
                    echo '['.$row['day'].','.$row['zugriffe'].'],';
                    $tag = $row['day'];
                }
            ?>

        ];

示例输出数据库:

day zugriffe
13  0
14  133
15  114
16  0
17  86
19  1

如何填写0次点击日期的缺失轴值?

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以在将数据提交到flot之前修复数据。

例如,给出数据库输出,如:

// this is unsorted and missing days 12, 13, 18, 19, 20
var pageviews = [[14,0],[11,133],[16,0],[17,89],[21,1]];

// sort it just in case (not sure if this is applicable to your data)
// sorting on X value
pageviews.sort(function(a,b){
    return a[0]-b[0];
});

// a quick function to scan and fill in missing x values
$.map(pageviews, function(obj){
    var rV = [];
    if (this.lastVal){
        var x = obj[0];
        var lastX = this.lastVal[0];
        for (var i = lastX + 1; i < x; i++){
            rV.push([i,0]);
        }
        rV.push(obj);
    } else {        
        rV = [obj];
    }
    this.lastVal = obj;
    return rV;
});