是這樣子的,我想實現從Mysql中查詢結果之後調用給js的highchart畫圖用
現在我通過mysql的 類似select 數量,月份,狀態 from table group by 月份,狀態,結果如下:
數量 月份 狀態
3 1月 成功
5 1月 失敗
3 2月 成功
7 4月 失敗
原本我想通過json化之後返回給前台畫圖。
但很顯然,我用highchart畫圖的時候,需要一整年的數據,即如果某個月份,或者狀態沒有,這一個數量就必須是0. 而現在我通過類似“data[3].數量“只能獲取4月份,失敗的數量7,但我實際想調取2月份,失敗的值,沒有就是0.
現在我的思路是兩個,一個是就是在mysql查詢的之後直接構建完成完整的表,如下圖(實際要一直構建到12月份)
數量 月份 狀態
3 1月 成功
5 1月 失敗
3 2月 成功
0 2月 失敗
0 3月 成功
0 3月 失敗
0 4月 成功
7 4月 失敗
第二個思路是在js調取數據的時候,新建一個類似數組arr{1月{成功:數量;失敗:數量}
2月{成功:數量;失敗:數量}},將返回的data補齊,就是data數據中存在一個“1月 成功” 的數據 那我就把他賦值給arr[1月].成功,如果不存在,比如沒有‘2月 失敗’的數據,那麼就給arr[2月].失敗 賦值0. 然後一直構建完成到12月必敗。
但是這兩個思路的具體代碼我都想不出來。。有沒有哪位大神能給一個思路。。。
或者哪位大神有別的好想法,同樣能夠實現最終目的的也請請教下。。非常感謝!
我比較傾向於您使用第二種方法,設計思想如下:
1.使用腳本在頁面初始化一個以月份為key,{"success":0,"failure":0}為值得這樣一個對象的數組,數組長度為12(12個月份的)。其實默認每個月份成功和失敗都是0.之後你便可以通過你傳來的數據,循環update上面初始化後的數組。用月份的key做匹配的鍵。如果你需要使用highchart畫圖的話,還需要對這個數組做符合highchart格式要求的處理。
2.把這個處理交給應用層做處理,增加一層應用層。