我正在尝试从我的数据库(php / mysql)中获取一些行,并使用javascript对象将其显示在谷歌图表中:
var data = google.visualization.arrayToDataTable([
['Month', 'Sales Price 1', 'Sales Price 2'],
['2013-05', 555, 651 ],
['2013-04', 1170, 321],
]);
我只从db中取一个(SELECT PRICE1,PRICE2,DATE FROM transactions)。
无法弄清楚如何迭代行来组织和打印出来的google javascript对象..
我意识到我必须做一些php循环并计算每个月的变量,然后将结果回显到数组中,但我想不出比较几个月的适当方法..
任何想法?
答案 0 :(得分:2)
您可以在查询中简单地使用ORDER BY
表示日期(您显然知道这一点)。要为JS创建数组,我会使用JSON。
$values = array(array('MOnth', 'Sales Price 1', 'Sales Price 2'));
while ($row = $result->fetch()) {
$values[] = array_values($row);
}
$for_javascript = json_encode($values);
答案 1 :(得分:2)
如果DATE字段包含交易日期,您可以轻松获取按月分组的价格字段的总和:
SELECT
YEAR(date) AS year,
MONTH(date) AS month,
SUM(price1) AS total1,
SUM(price2) AS total2
FROM transactions
GROUP BY YEAR(date), MONTH(date)
ORDER BY date
这很可能比PHP解决方案快得多,特别是如果该表中存储了大量事务。