程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> mysql-在Mysql(或者在js中)構建完整查詢結果數組

mysql-在Mysql(或者在js中)構建完整查詢結果數組

編輯:編程解疑
在Mysql(或者在js中)構建完整查詢結果數組

是這樣子的,我想實現從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.把這個處理交給應用層做處理,增加一層應用層。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved