php - MySql - 为数组组织变量

时间:2013-06-02 20:44:30

标签: php mysql

我正在尝试从我的数据库(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循环并计算每个月的变量,然后将结果回显到数组中,但我想不出比较几个月的适当方法..
任何想法?

2 个答案:

答案 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解决方案快得多,特别是如果该表中存储了大量事务。

演示:http://sqlfiddle.com/#!2/feddd/1