在Highcharts画出2行。 JSON格式错误?

时间:2014-04-25 14:03:51

标签: javascript php mysql json highcharts

我正在尝试使用Highcharts在图表上绘制2行。 PHP服务器端文件是:

require_once('Connections/conexion.php'); 
$sesionUser = $_SESSION['MM_Username'];
$sesionIdGrupo = $_GET['idGrupo'];
$sesionFechaActual = $_GET['fechaActual'];
$sesionFechaActualArreglo = date_format(new DateTime($sesionFechaActual),"Y-m-d");

$query_RecordsetTabla2 = "SELECT idDispositivo FROM dispositivos WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idGrupo = '$sesionIdGrupo'";
$RecordsetTabla2 = mysql_query($query_RecordsetTabla2, $conexion) or die(mysql_error());
$totalRows_RecordsetTabla2 = mysql_num_rows($RecordsetTabla2); 

while ($row_RecordsetTabla2 = mysql_fetch_assoc($RecordsetTabla2))
{
    $idDispositivo = $row_RecordsetTabla2['idDispositivo']; 

    $query_RecordsetTabla3 = "SELECT * FROM registros WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idDispositivo = '$idDispositivo' AND fecha = '$sesionFechaActualArreglo'";
    $RecordsetTabla3 = mysql_query($query_RecordsetTabla3, $conexion) or die(mysql_error());
    $totalRows_RecordsetTabla3 = mysql_num_rows($RecordsetTabla3);
    if ($totalRows_RecordsetTabla3 != 0) {  ///para ver si tienen resultados la consulta
    unset($items);      

        while ($row_RecordsetTabla3 = mysql_fetch_assoc($RecordsetTabla3))
        {
        $fecha = $row_RecordsetTabla3['fecha'];
            $hora = $row_RecordsetTabla3['hora'];
            $estado = $row_RecordsetTabla3['estado']; 
        $arregloFecha = date_format(new DateTime($fecha),"Y-m-d");
            $arregloHora = date_format(new DateTime($hora),"H:i");
        $arregloHora2 = strtotime($arregloHora) * 1000;
        $arr = array($arregloHora2, floatval($estado));
        $items[]  =  $arr;
        }
        $items2  = array ( 'data' => $items , 'name' => $idDispositivo );
        echo json_encode($items2);
    }/////del IF
}
mysql_free_result($RecordsetTabla);
mysql_free_result($RecordsetTabla2);
mysql_free_result($RecordsetTabla3);
?>

...并返回JSON字符串:

{"data":[[1398416400000,1],[1398419100000,1]],"name":"2"}{"data":[[1398418200000,1],[1398419100000,1],[1398420000000,0]],"name":"16"}

答案文件转到javascrpt客户端:

$.get("mostrarStatsGrupo.php", datos, function(data){
var titulo = 'Red '+ memoria.nombreGrupoSeleccionado +' a día '+ memoria.fechaActual
chart = new Highcharts.Chart({
    chart: {
        renderTo: 'divStatsGrupo',
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false
    },
    title: {
        text: titulo
    },
    tooltip: {
        enabled: false,        
    },
    xAxis: {

        type: 'datetime',
        dateTimeLabelFormats : {
            hour: '%H:%M',
            labels: {
                style: {
                    width: '200px','min-width': '100px'
                },
            useHTML : true
            }
        }   
    },
    yAxis: {
        categories: [ 'APAGADO', 'ACTIVO', 'ALARMA'],   
        title: {
            text: 'ESTADO'
        },
        min: 0
    },
    series : data   <-----is the problem?¿?¿        
});
}); ///cierro get
}   ///cierro function

Highcharts没有画出2条线作为希望。任何开明的灵魂都可以利他主义吗?非常感谢你,没有这个社区。谢谢!

编辑:我无法上传带有表BD的图片,对不起! ...我需要至少10个声望! ...链接... http://i57.tinypic.com/2efj43n.jpg

编辑2: 感谢Jerko的回复...... ...根据正确的代码/回复进行审核!

1 个答案:

答案 0 :(得分:2)

试试这个

$items2  = array();
while ($row_RecordsetTabla2 = mysql_fetch_assoc($RecordsetTabla2))
{
    $idDispositivo = $row_RecordsetTabla2['idDispositivo']; 

    $query_RecordsetTabla3 = "SELECT * FROM registros WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idDispositivo = '$idDispositivo' AND fecha = '$sesionFechaActualArreglo'";
    $RecordsetTabla3 = mysql_query($query_RecordsetTabla3, $conexion) or die(mysql_error());
    $totalRows_RecordsetTabla3 = mysql_num_rows($RecordsetTabla3);
    if ($totalRows_RecordsetTabla3 != 0) {  ///para ver si tienen resultados la consulta
    unset($items);      

        while ($row_RecordsetTabla3 = mysql_fetch_assoc($RecordsetTabla3))
        {
            $fecha = $row_RecordsetTabla3['fecha'];
            $hora = $row_RecordsetTabla3['hora'];
            $estado = $row_RecordsetTabla3['estado']; 
            $arregloFecha = date_format(new DateTime($fecha),"Y-m-d");
            $arregloHora = date_format(new DateTime($hora),"H:i");
            $arregloHora2 = strtotime($arregloHora) * 1000;
            $arr = array($arregloHora2, floatval($estado));
            $items['data'][]  =  $arr;
        }
        $items['name'] = $idDispositivo;

        array_push($items2, $items);

    } //del if
}

echo json_encode($items2);