javascript - 在 Highcharts 中绘制 2 条线。 JSON格式错误?

标签 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 的回复... ...在下面查看正确的代码/回复!

最佳答案

试试这个

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

关于javascript - 在 Highcharts 中绘制 2 条线。 JSON格式错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295416/

相关文章:

mysql - 希望 SQL Server CONSTRAINT 不允许特定的特定字符串

javascript - 正确推送到已作为 props 传递的数组

javascript - 如何在 Fabric 中制作线条画动画

php - 显示从数据库到 Bootstrap 轮播的多个图像

mysql - 导入时不遵守默认数据库排序规则

mysql - Mysql 查找飞机名称,使所有获得驾驶资格的飞行员的收入超过 80,000 美元

javascript - 检查文本值的一部分是否包含在另一个文本值中

javascript - Ajax 成功函数未使用 require 指令调用

php - PHP 中的可变变量类扩展——可能吗?

php - 在 Codeigniter 中创建 Cookie