Highcharts汇总具有相同日期的结果

时间:2013-03-27 01:30:09

标签: php javascript jquery

我在我的网站上安装了Highcharts,但我遇到了问题。 MySQL以该值返回数据:

['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['11.03.2013', 1], ['21.03.2013', 1], ['22.03.2013', 1]

它包含在Highcharts中:

$('#chart').highcharts({
    chart: {
        type: 'line'
    },
    title: {
        text: 'Statistika prenosov'
    },
    xAxis: {
        title: {
            text:'Datum'
        }
    },
    yAxis:{
        title: {
            text:'Prenosi'
        },
        plotLines: [{
            value: 0,
            width: 1,
            color: '#808080'
        }]
    },


   series: [{
            name: 'Prenosi',
            data: [['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['26.03.2013', 1], ['11.03.2013', 1], ['21.03.2013', 1], ['22.03.2013', 1]]
        }]
    });

});

但是我想,如果有三个日期26.3.2013,那么不要单独展示它们,而是把它们放在一起,所以结果应该是3,而不是3x1。

以下是我如何使用PHP获取结果:

$query=mysql_query("SELECT * FROM downloads WHERE prjID='".$_GET['id']."' ORDER BY date ASC");
$num=mysql_num_rows($query);
$res='';
$i=0;
while($row=mysql_fetch_array($query)){

$i++;
$date=date("d.m.Y", strtotime($row['date']));

$numb=1;

if($i!=$num){
$res.="['".$date."', ".$numb."], ";
}
else{
$res.="['".$date."', ".$numb."]";
}

}

1 个答案:

答案 0 :(得分:1)

最简单的方法是修改SQL以便为您求和。如果您要显示每个日期的计数,请将查询更改为:

SELECT date,count(*) as num FROM downloads WHERE prjID='".$_GET['id']."' GROUP BY date ORDER BY date ASC"