【问题标题】:Highcharts - Series data from MySQL in the expected formatHighcharts - MySQL 中预期格式的系列数据
【发布时间】:2015-02-24 23:40:29
【问题描述】:

我在使用 highcharts 时遇到了一些麻烦。

我想生成一个类似的图表:http://www.highcharts.com/demo/column-basic

我的问题与系列数据有关。我有一些 SQL 查询,一个用于类别(我在其中获取不同的数据),另一个用于获取系列的结果,即一些 X 和 Y 值。

我的数据库数据格式如下(这是数据库的实际结果):

Year Value
2012 9747600000
2012 9358200000
2013 9494830000
2013 9459250000
2013 9478030000
2013 9592300000
2013 9535060000

据我所知,highcharts 期望采用这种格式:

Name: 2012
Data: [9747600000, 9358200000]
Name: 2013
Data: [9747600000, 9358200000]

如何直接从 MySQL 生成这样的格式?有什么更好的方法来做到这一点?

提前致谢!

编辑

我认为接受的解决方案可以按我的意愿工作,但我仍然无法将此信息传递给 Highcharts。尽管查询按预期工作,但我无法返回以下格式的数组:

[{
name: 'Tokyo',
data: [49.9, 71.5, 106.4]

}, {
name: 'New York',
data: [83.6, 78.8, 98.5]

}]

有解决这个问题的想法吗?谢谢!

【问题讨论】:

    标签: mysql highcharts


    【解决方案1】:

    你可以试试下面的查询:

    SELECT YR, GROUP_CONCAT(VAL)
    FROM TimeTable
    GROUP BY YR;
    

    这将获得不同的年份,并将值连接为一个(逗号分隔)。

    这是示例 SQL Fiddle: http://sqlfiddle.com/#!2/7859c/1

    【讨论】:

    • 谢谢!解决了我的问题,这是一个优雅的解决方案!
    • 这个解决方案帮助了我,但我无法完全解决我遇到的问题。我用更多的疑问编辑了这个问题!谢谢!
    【解决方案2】:

    您可以运行一个 foreach 循环并将其放入一个数组,如

    `<?php
    $newArray = array();
     foreach ($result  as $year=>       $value) {
       $newArray[$year][ ] = $value;
     }
     Print_r($newArray);
    ?>`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多