0

Web サイトに 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]

そして、それは次のようにハイチャートに含まれています:

$('#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]]
        }]
    });

});

しかし、2013 年 3 月 26 日の日付が 3 つある場合は、それぞれを単独で表示するのではなく、まとめて表示するので、結果は 3x1 ではなく 3 になるはずです。

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."]";
}

}
4

1 に答える 1

1

最も簡単な方法は、SQL を変更して合計することです。各日付のカウントを表示しようとしている場合は、クエリを次のように変更します。

SELECT date,count(*) as num FROM downloads WHERE prjID='".$_GET['id']."' GROUP BY date ORDER BY date ASC"
于 2013-03-27T08:36:11.180 に答える