2011-04-11 51 views
1

我有一個MySQL結果按日期排序,並按日期和ID分組。圖形數據從mysql

SELECT 
    DATE(`created_at`) AS `date`, 
    COUNT(`id`) AS `count`, 
    `account_id` 
FROM `streamaccounts` 
GROUP BY `date`, `account_id` 
ORDER BY `date`; 

,其結果是這樣的:

日期,計數,ACCOUNT_ID
2011-03-23,2,1
2011-03-23,1,6
2011- 04-25,1,1
2011-04-26,5,6

如果你問我,那是用它來設置麥正確的結果e高圖的圖表。 但我陷入了下面的問題。

我無法弄清楚如何爲highcharts創建正確的結果。 結果必須是這個樣子:

series: [{name: 'account1', data: [2, 1]}, {name: 'account2', data: [1, 5}] 

它都將在PHP編程和回顯出來打印出有效的JavaScript。 我該怎麼辦?我是否需要首先循環所有日期並檢查該日期是否爲有效結果?或者我先循環所有帳戶並檢查有效日期。

有什麼建議嗎?

在此先感謝!

回答

0

group by account_id將由帳戶在一起什麼都算

更新:

group by date, account_id

+0

感謝您的快速響應。據我所知,那不是我想要的。我想按日期進行分組,並根據該日期計算每個帳戶的ID。賬戶1可以在2011-04-11有5個帖子,賬戶2可以在同一天有2個帖子。在這個結果中,每個賬戶有兩個圖表,一個點在5點,另一個點在2點 – frietkot 2011-04-11 08:56:36

0

所以基本上你將有一個X軸是由日期, 和Y軸將包括的計數,以每個帳戶爲基礎。

最簡單的方法是通過公共座標軸爲數據生成這個日期。 因此,您需要遍歷圖表所需的時間範圍內的日期, 並將計數映射到那些日子。在一個數據集可能看起來像這樣結束了:

series : [ 
{name: 'ac1', data: [0,1,5,0,0,0,0,2,3]}, 
{name: 'ac2', data: [0,0,2,1,0,1,0,0,0]} 
] 

結束了這樣一個例子:http://jsfiddle.net/55dvF/4/

希望有所幫助。