javascript - JSON Highcharts绘制多条线

标签 javascript php mysql json highcharts

我完全迷失了 Highcharts!。我必须用多条线绘制图表。我需要这样的 JSON 输出:

[{
    "name": "2",
    "data": 
    [1398333600000,1],[1398333600000,1],....
  },
  {
    "name": "16",
    "data": 
    [1398333600000,1],[1398333600000,1]...
  },
  {
    ....
    ....
  }
]

...但是,我从 PHP 文件中只得到格式错误的 JSON 响应。 ¿一些利他的灵魂可以启发道路?非常感谢你提前。对不起,我是一个 super 新手:(

我的BD表Mysql:

我无法在帖子中上传带有表格 BD 的图片,抱歉! ...我至少需要 10 个声望! ...关联... http://i57.tinypic.com/2efj43n.jpg

JavaScript 代码:

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 : [{
                showInLegend: true,
                name : data.name,
                type : 'line',
                data: data.data 
                        }]
        });
});

PHP 代码:

require_once('Connections/conexion.php'); 
$sesionUser = $_SESSION['MM_Username'];
$sesionIdGrupo = $_GET['idGrupo'];
$sesionFechaActual = $_GET['fechaActual'];
///ARREGLO FECHA RECIBIDA PARA ADAPTARLA A FORMATO DE LA BD YY-MM-DD
$sesionFechaActualArreglo = date_format(new DateTime($sesionFechaActual),"Y-m-d");

mysql_select_db($database_conexion, $conexion); 
$query_RecordsetTabla = "SELECT * FROM registros WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idGrupo = '$sesionIdGrupo' AND fecha = '$sesionFechaActualArreglo'";
$RecordsetTabla = mysql_query($query_RecordsetTabla, $conexion) or die(mysql_error());
$totalRows_RecordsetTabla = mysql_num_rows($RecordsetTabla); 

$arr = array();
while ($row_RecordsetTabla = mysql_fetch_assoc($RecordsetTabla))
{
$idDispositivo = $row_RecordsetTabla['idDispositivo'];
$fecha = $row_RecordsetTabla['fecha'];
$hora = $row_RecordsetTabla['hora'];
$estado = $row_RecordsetTabla['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));
$arrDisp[] = array(floatval($idDispositivo));
}
$arr2 = array('data' => $arr, 'name' => $arrDisp);
echo json_encode($arr2);
mysql_free_result($RecordsetTabla);

我从 PHP 文件中收到这个...

{"data":[[1398330000000,1],[1398332700000,1],[1398331800000,1],[1398332700000,1]],"name":[[2],[2],[16],[16]]}

我想我在数组方面有问题,谢谢!

最佳答案

你非常接近。我保留了与您的代码相似的代码,以便您可以看到细微差别。

$items = array();
while ($row_RecordsetTabla = mysql_fetch_assoc($RecordsetTabla))
{
$idDispositivo = $row_RecordsetTabla['idDispositivo'];
$fecha = $row_RecordsetTabla['fecha'];
$hora = $row_RecordsetTabla['hora'];
$estado = $row_RecordsetTabla['estado']; 
$arregloFecha = date_format(new DateTime($fecha),"Y-m-d");
$arregloHora = date_format(new DateTime($hora),"H:i");
$arregloHora2 = strtotime($arregloHora) * 1000;
// changed $arr and $arrDisp to scalar
$arr = array($arregloHora2, floatval($estado));
$arrDisp = array(floatval($idDispositivo));
// name and data should be put as part of a single array
$items[]  = array ( 'data' => $arr , 'name' => $arrDisp );
}
// $arr2 = array('data' => $arr, 'name' => $arrDisp);
echo json_encode($items);
mysql_free_result($RecordsetTabla);

请注意,我无法对其进行测试,但如果它不起作用,请告诉我,我会进一步研究。

关于javascript - JSON Highcharts绘制多条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23265540/

相关文章:

javascript - JSON:查询连接表不起作用(Cordova Mobile)

javascript - 如何实现需要持续运行的 Node 应用程序?

php - 谷歌分析 API : Why is the API data different than what's being seen on the Analytics Dashboard?

php - 如何阻止 ORDER BY RAND() 重复结果?

php - 是否可以在 spl_autoload_registry 中扩展具有相同类但路径不同的命名空间类

Mysql从两个表中选择,获取所有数据,如果不存在则num 0

javascript - 如何检查爆米花js是否无法加载YouTube视频?

javascript - 从 JavaScript 函数返回超过 1 个值?

javascript - Q promises - 作用域是如何工作的?

php - 使用 PHP 在 mysql 中插入/输出日期和时间?