Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
Javascript Highcharts使用json向折线图添加点_Javascript_Php_Mysql_Json_Highcharts - Fatal编程技术网

Javascript Highcharts使用json向折线图添加点

Javascript Highcharts使用json向折线图添加点,javascript,php,mysql,json,highcharts,Javascript,Php,Mysql,Json,Highcharts,我需要从mysql数据库中获取的数据中添加点。此时,我通过json获取数据,但我不知道为什么在输出数组中,数据有双引号(“”),如下所示: ["{name:'Chip 3',data:[[moment('2015-05-14 13:26:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13 :26:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:27:21','HH:mm:ss').va

我需要从mysql数据库中获取的数据中添加点。此时,我通过json获取数据,但我不知道为什么在输出数组中,数据有双引号(“”),如下所示:

["{name:'Chip 3',data:[[moment('2015-05-14 13:26:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13
:26:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:27:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
 13:27:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:28:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
 14:42:54','HH:mm:ss').valueOf(),32],]}"]
因此Highcharts无法访问数据并在图表上显示数据。现在,我需要从数组中删除双引号,或者做一些其他事情,使Highcharts可以重新调整数据

这是data.php文件中的代码,用于获取和更新系列数据

<?php

header("Content-type: text/json");


 include_once 'include/connection.php';
 $db = new DB_Class(); 



     $query = "select distinct idchip from datatable ";
     $result = mysql_query( $query );
     $rows = array();
     $count = 0;
     $getall = array();
     while( $row = mysql_fetch_array( $result ) ) {

         $table = array();

         $query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';

            $dataresult = mysql_query($query2);
            while($datarow = mysql_fetch_array($dataresult))
            {

                $data = '';


                $datatimes .= $datarow['0'].',';


                $data .= "[moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1']."],";
                $stringdata .= $data;

                }

        $newstring = $stringdata ;

        $stringdata = '';
        $stringtime = '';

        $namedata = "{name:'Chip ".$row["idchip"]."',data:[$newstring]}";
        $getall[] = $namedata;


     }


echo json_encode($getall);
?>

我想是这样的

    $query = "select distinct idchip from datatable ";
    $result = mysql_query( $query );
    $rows = array();
    $count = 0;
    $getall = array();
    while( $row = mysql_fetch_array( $result ) ) {

        $table = array();
        $stringdata = array();
        $query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';

        $dataresult = mysql_query($query2);

        $stringdata = array();
        while($datarow = mysql_fetch_array($dataresult))
        {
            $stringdata[] = "moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1'];
        }

        $namedata['name'] = "Chip ".$row["idchip"];
        $namedata['data'] =  $stringdata;
        $getall[] = $namedata;
    }

    echo json_encode($getall);

问题在于在php中构造json对象的方式。请看看这个。您不必创建json字符串。您需要创建最终的数组,然后只需使用json_encode($getall);那就行了it@irfanrasool问题是如果我通过json数组添加,我就不能在数组中添加[moment(…)]或类似的东西。你能告诉我怎么做吗?通常在json中你不能使用函数,因为它不会运行/evalutate,所以irfan rasool的建议是正确的。@SebastianBochan你能在这个链接上帮助我吗?我有一个正确的方向要遵循::D。你的链接与当前主题相同。用这个代码输出数据如下:[{“name”:“芯片3”,“数据”:[“矩('2015-05-14 13:26:21','HH:mm:ss').valueOf(),29”,“矩('2015-05-14 13:26:51','HH:mm:ss').valueOf(),29“,}]但Highcharts需要的格式如下:[名称:“某物”,数据:[矩('date','HH:mm:ss').valueOf(),'other data'];–然后您必须创建js平面数组,将其馈送到highchart实例显示您从服务器端获得的输出以及highchart需要的输出,以便我为您创建js这是我的代码输出:[{“name”:“Chip 3”,“data”:[[“moment('2015-05-14 13:26:21','HH:mm:ss')。valueOf()”,29),“moment”('2015-05-14 13:26:51','HH:mm:ss').valueOf(),29],“矩('2015-05-14 13:27:21','HH:mm:ss').valueOf(),29]。这是我从输出中需要的格式。[{“名称”:“从mysql检索的名称”,“数据”:[矩:('date from mysql','HH:mm:ss'.valueOf()),来自mysql的数据],[另一个矩点])。这是我需要的示例数据(不要在“时刻”周围重复引用:。{name:'Chip 3',data:[[moment('2015-05-14 13:26:21','YYYY-MM-DD HH:MM:ss')。valueOf(),29]}非常感谢,
    $query = "select distinct idchip from datatable ";
    $result = mysql_query( $query );
    $rows = array();
    $count = 0;
    $getall = array();
    while( $row = mysql_fetch_array( $result ) ) {

        $table = array();
        $stringdata = array();
        $query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';

        $dataresult = mysql_query($query2);

        $stringdata = array();
        while($datarow = mysql_fetch_array($dataresult))
        {
            $stringdata[] = "moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1'];
        }

        $namedata['name'] = "Chip ".$row["idchip"];
        $namedata['data'] =  $stringdata;
        $getall[] = $namedata;
    }

    echo json_encode($getall);