3

我想创建一个从 MySQL 数据库中提取的值的静态图表。图表格式为(x 轴:dd/mm/yy hh:mm:ss(对应于 mysql 数据库的时间戳)),y 轴为双精度值。我能够成功地从 MySql 数据库中检索这些值。我需要帮助通过 ZingChart 绘制它们

4

2 回答 2

3

尼基塔。

从 MySQL 数据库中检索到值后,您需要将 MySQL 日期值转换为 Unix 时间(以毫秒为单位)。我$date用 MySQL 日期值填充了一个数组,并在数组上进行了迭代,调用 strtotime 首先转换为 Unix 时间,然后乘以 1000 转换为毫秒。为了能够在循环中直接修改数组元素,我还在 $value 之前加上了通过引用分配。

foreach ($date as &$value){
  $value = strtotime( $value ) * 1000;
}

所以现在$date数组中的值已经转换为正确的格式,是时候从 PHP 数组创建一个 JavaScript 数组了。这可以使用 join() 来完成:

var dateValues = [<?php echo join($date, ',') ?>];

结果数组如下所示:

var dateValues = [1356994800000,1357081200000,1357167600000, ... ];

要在 ZingChart 中使用此数组,请在 scale-x 对象中使用带有“值”的 dateValues 变量。要将 Unix 时间值转换回 ZingChart 中的日期,请添加“transform”对象,并将其设置为“type”:“date”。

"scale-x":{
  "values": dateValues,
  "transform":{
    "type":"date",
    "item":{
      "visible":false
    }
  }
},
...

这照顾规模。要在图表中获取其他值,您几乎可以执行相同的操作。将 PHP 数组转换为 JavaScript 数组,并在图表 JSON 中使用数组变量。

使用 PHP $series 数组:

var seriesValues = [<?php echo join($series, ',') ?>];

在您的图表 JSON 中:

"series":[
  {
    "values":seriesValues
  }
]

我已经为您将所有这些编译成一个Github Gist。如果您有任何问题,请告诉我!

于 2015-06-04T18:56:16.507 回答
2

在 GitHub 上查看我们的演示存储库。我们有一个专门关于使用 PHP 连接到 MySQL 数据库的教程。

我们的网站上也有分步演练

如果您分享您的 JSON 或有关它的更多详细信息,我可以帮助您将图表放在一起。

我在 ZingChart 团队。如果您还有其他问题,请告诉我。

于 2015-06-03T14:50:14.393 回答