Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用json将mysql数据解析为highchart_Php_Mysql_Json_Highcharts - Fatal编程技术网

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);
});