Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从mysql数据库通过sequelizejs将数据加载到图表中_Javascript_Mysql_Sequelize.js_C3.js - Fatal编程技术网

Javascript 从mysql数据库通过sequelizejs将数据加载到图表中

Javascript 从mysql数据库通过sequelizejs将数据加载到图表中,javascript,mysql,sequelize.js,c3.js,Javascript,Mysql,Sequelize.js,C3.js,我使用过这个库,但我不知道如何将数据加载到其中。我从未将数据从mysql加载到图表。所以我不知道什么是最佳实践 所以我在MySQL表中有如下行: id | price | kind | orderdate ----------------------------- 1 | 35 | 2 | 2013-01-01 2 | 30 | 1 | 2013-01-01 3 | 25 | 3 | 2013-01-01 4 | 15 | 2 | 2013

我使用过这个库,但我不知道如何将数据加载到其中。我从未将数据从mysql加载到图表。所以我不知道什么是最佳实践

所以我在MySQL表中有如下行:

id | price | kind | orderdate
-----------------------------
1  |  35   | 2    | 2013-01-01
2  |  30   | 1    | 2013-01-01
3  |  25   | 3    | 2013-01-01
4  |  15   | 2    | 2013-01-01
   columns: [
        ['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05'],
        ['kind1', 30, 200, 100, 400, 150],
        ['kind2', 30, 200, 100, 400, 150],
        ['kind3', 30, 200, 100, 400, 150],
    ]
进一步c3js以如下格式加载数据:

id | price | kind | orderdate
-----------------------------
1  |  35   | 2    | 2013-01-01
2  |  30   | 1    | 2013-01-01
3  |  25   | 3    | 2013-01-01
4  |  15   | 2    | 2013-01-01
   columns: [
        ['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05'],
        ['kind1', 30, 200, 100, 400, 150],
        ['kind2', 30, 200, 100, 400, 150],
        ['kind3', 30, 200, 100, 400, 150],
    ]
因此,我创建了日期数组,如下所示
['x','2013-01-01','2013-01-02','2013-01-03','2013-01-04','2013-01-05']
并且我需要每个日期的行数,其中示例种类=1。 但我不知道MySQL查询应该是什么样子。。。我是否需要查询日期数组中的每个日期? 还是有更好的办法


谢谢你的帮助

首先,您需要从服务器上的表中提取数据,并将其转换为浏览器上的javascript。如何做到这一点取决于您使用的是什么,例如PHP,但查询可能是这样的:

select   orderdate, kind, sum(price) as total
from     #orders
where    orderdate between '1 Jan 2013' and '10 jan 2013'
group by orderdate, kind
我的首选是通过JSON API公开数据,这样您就可以从url(与起始日期和截止日期并列)获取以下格式的数据:

[
{'orderdate':'2013-01-01', 'kind': 1, 'total': 30},
{'orderdate':'2013-01-01', 'kind': 2, 'total': 50},
{'orderdate':'2013-01-01', 'kind': 3, 'total': 25},
{'orderdate':'2013-01-02', 'kind': 1, 'total': 30},
{'orderdate':'2013-01-02', 'kind': 2, 'total': 20},
{'orderdate':'2013-01-02', 'kind': 3, 'total': 23}
]
然后将数据“转置”到所需的列中:

['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05'],
['kind1', 30, 200, 100, 400, 150],
['kind2', 30, 200, 100, 400, 150],
['kind3', 30, 200, 100, 400, 150],
第一列是直截了当的,因为您有起始日期和结束日期

要建立第2、3、4行,假设您知道种类列表:

for each kind:
 create an array, eg: var data = ['kind1'];
 initialise a sum variable, eg: var sum = 0;
 for each date (in the correct order):
  loop through the array, if the date & the kind match, add to the sum variable
 add the sum to the array, eg: data.push(sum);
应该这样吗