我想创建一个从 MySQL 数据库中提取的值的静态图表。图表格式为(x 轴:dd/mm/yy hh:mm:ss(对应于 mysql 数据库的时间戳)),y 轴为双精度值。我能够成功地从 MySql 数据库中检索这些值。我需要帮助通过 ZingChart 绘制它们
2 回答
尼基塔。
从 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。如果您有任何问题,请告诉我!
在 GitHub 上查看我们的演示存储库。我们有一个专门关于使用 PHP 连接到 MySQL 数据库的教程。
我们的网站上也有分步演练。
如果您分享您的 JSON 或有关它的更多详细信息,我可以帮助您将图表放在一起。
我在 ZingChart 团队。如果您还有其他问题,请告诉我。