Php 使用json将mysql数据解析为highchart
对这件事一无所知,几乎绝望了。我想做的是:Php 使用json将mysql数据解析为highchart,php,mysql,json,highcharts,Php,Mysql,Json,Highcharts,对这件事一无所知,几乎绝望了。我想做的是: [ [2014-01-01 09:00:00, 12.43] [2014-01-02 09:00:00, 13.57] ] 读取传感器工作时的温度,返回浮动 将数据保存在mysql数据库boxklima.sensorid中工作-表为boxklima.04146050FF,以日期-温度对的形式存储。日期存储为2014-01-01 09:00:00 datetime,温度存储为12.123 real 图形数据x轴:日期y轴:温度完全搞糟了 所
[
[2014-01-01 09:00:00, 12.43]
[2014-01-02 09:00:00, 13.57]
]
读取传感器工作时的温度,返回浮动
将数据保存在mysql数据库boxklima.sensorid中工作-表为boxklima.04146050FF,以日期-温度对的形式存储。日期存储为2014-01-01 09:00:00 datetime,温度存储为12.123 real
图形数据x轴:日期y轴:温度完全搞糟了
所以我坚持使用highcharts,它看起来很好,而且似乎很容易设置,因为除了数据解析之外,一切都是在客户端进行的
现在我不知道该如何创建给highchart的数组。它应该类似于create-graph.html的内容
打开create-graph.html会导致出现空屏幕。
凭据设置为755,php文件的执行位设置为。文件位于同一目录中
谢谢你的帮助,提前谢谢你,我已经不知所措了。
通读其他主题,但由于我不熟悉这一主题,因此它只提供了一些我无法匹配的小片段s
进一步资料:
lighttpd/1.4.31
PHP Version 5.4.36-0+deb7u1
additional config files parsed
/etc/php5/cgi/conf.d/10-pdo.ini, /etc/php5/cgi/conf.d/20-gd.ini,
/etc/php5/cgi/conf.d/20-mcrypt.ini, /etc/php5/cgi/conf.d/20-mysql.ini,
/etc/php5/cgi/conf.d/20-mysqli.ini, /etc/php5/cgi/conf.d/20-pdo_mysql.ini
json support enabled
json version 1.2.1
mysql Client API version 5.5.40
将您的php文件更改为:
<?php
$dbc = mysqli_connect("localhost", "pi", "pi", "boxklima");
$query = "SELECT date,temp FROM 0414604605ff";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
$rows[$i]=array($row['date'],$row['temp']);
$i++;
}
echo json_encode($rows);
?>
基本上是数组的数组。
因此,将函数更改为此可能会有所帮助:
$.getJSON('data.php', function(data) {
dataTemp = [];
for(i=0;i<data.length;i++){
dataTemp.push(data[i][1]); // '1' index for getting that temp value. '0' for date.
}
options.series[0].data = dataTemp;
var chart = new Highcharts.Chart(options);
});
在web浏览器中打开data.php时,也请发布其内容。
如果在进行更改后打开create-graph.html时遇到JavaScript控制台错误,还应提及。您需要将字符串日期转换为时间戳,并设置xAxis的日期时间类型。要提供帮助,请参阅并应用于PHP脚本。认为temp变量将引用数据库中的temp列-如您所述更改了代码-没有结果。没有未定义的temp。在浏览器中打开data.php文件时,是否可以发布其输出?你能打开javascript控制台检查错误并告诉我吗?在Google Chrome中使用Ctrl+Shift+j。$dbc=mysqli_connectlocalhost,pi,pi,boxklima$查询=从04146040FF中选择日期、温度$data=mysqli_query$dbc$query$i=0;而$row=mysqli_fetch_数组$data{$rows[$i]=array$row['date'],$row['temp'];$i++;}echo json_encode$rows;寻找控制台,可能需要几分钟的时间:嘿,听着,你使用了错误的php标记。请先查看我的答案的编辑并更改您的php文件。开始编写php代码时的语法是
<?php
$dbc = mysqli_connect("localhost", "pi", "pi", "boxklima");
$query = "SELECT date,temp FROM 0414604605ff";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
$rows[$i]=array($row['date'],$row['temp']);
$i++;
}
echo json_encode($rows);
?>
[
[2014-01-01 09:00:00, 12.43]
[2014-01-02 09:00:00, 13.57]
]
$.getJSON('data.php', function(data) {
dataTemp = [];
for(i=0;i<data.length;i++){
dataTemp.push(data[i][1]); // '1' index for getting that temp value. '0' for date.
}
options.series[0].data = dataTemp;
var chart = new Highcharts.Chart(options);
});