漆黑天使复活 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条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值