漆黑天使复活 2016-03-15 15:04 采纳率: 44.4%
浏览 1347
已采纳

在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月必败。

但是这两个思路的具体代码我都想不出来。。有没有哪位大神能给一个思路。。。

或者哪位大神有别的好想法,同样能够实现最终目的的也请请教下。。非常感谢!

  • 写回答

2条回答

  • ai2018 2016-03-16 00:10
    关注

    我比较倾向于您使用第二种方法,设计思想如下:
    1.使用脚本在页面初始化一个以月份为key,{"success":0,"failure":0}为值得这样一个对象的数组,数组长度为12(12个月份的)。其实默认每个月份成功和失败都是0.之后你便可以通过你传来的数据,循环update上面初始化后的数组。用月份的key做匹配的键。如果你需要使用highchart画图的话,还需要对这个数组做符合highchart格式要求的处理。
    2.把这个处理交给应用层做处理,增加一层应用层。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 通过下面文章的方法求手机号段
  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体