Javascript 从mysql数据库通过sequelizejs将数据加载到图表中
我使用过这个库,但我不知道如何将数据加载到其中。我从未将数据从mysql加载到图表。所以我不知道什么是最佳实践 所以我在MySQL表中有如下行: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
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);
应该这样吗