首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图表和JSON问题

图表和JSON问题
EN

Stack Overflow用户
提问于 2013-06-30 01:04:11
回答 1查看 382关注 0票数 1

我正在制作一个时间线图,我对我需要的数据有问题--对数据库的查询结果没有导致双引号(")。

[{“名称”:“电视电缆”、“数据”:[1370925000000100]}{“名称”:“电视卫星”、“数据”:[“1365654600000、100”、“1368505800000、200”、“1370320200000、1500”、“1370925000000500”、“1370925000000000、560”、“137092500000050”、“1370925000000500”、“13709250000800”、“1370925000000500”、“1370925000000500”、“137377600000、1000]}{}”}{}“名称:”Tv:“因特网”数据:“137092500000050”、“137092500000000800”、“13709250000500”、“137377600000”、“1000]}

我需要它如下

[{“名称”:“电视电缆”,“数据”:[13709250000100]},{“名称”:“Tv卫星通信”,"data":[1365654600000,100,1368505800000,200,1370320200000,1500,1370925000000,500,1370925000000,560,1370925000000,50,1370925000000,500,1370925000000,800,1370925000000,500,1373776200000,1000]},{“名称”:“电视因特网”,“数据”:[1371097800000,500]},{“名称”:“Tv Telefonia"}]

我试着去修复它,而我却没有做到?

我让我的图形代码看我在做什么

sql.php

代码语言:javascript
复制
<?php
$fecha = date("d-m-Y"); // fecha actual 
$ano = date("Y"); // A単o actual 
$mes = date("m"); // Mes actual 
$dia = date("d"); // Dia actual  
$mes_inicio= $mes-2;

$con = mysql_connect("localhost","xyolcarx_inter","xYolcar19572059");

if (!$con) {
die('Could not connect: ' . mysql_error());
}

mysql_select_db("xyolcarx_inter", $con);
$rows = array();
for ($i=1;$i<=4;$i++){
$sth = mysql_query("SELECT monto,(unix_timestamp(fecha)*1000) FROM ventas WHERE codigo_ser = '".$i."' ORDER BY fecha ASC ");
$sth2 = mysql_query("SELECT * FROM servicio WHERE codigo_ser= '".$i."'");
while($r2 = mysql_fetch_array($sth2)) {
$rows[$i]['name'] = $r2['servicio'];
}
while($r = mysql_fetch_array($sth)) {
$rows[$i]['data'][] = '['.$r['(unix_timestamp(fecha)*1000)'].','.$r['monto'].']';
}
}
$result = array();
for ($i=1;$i<=4;$i++){  
array_push($result,$rows[$i]);
}
print json_encode($result, JSON_NUMERIC_CHECK);

mysql_close($con);
?>

index.php

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>

  <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type='text/css'>

  </style>



<script type='text/javascript'>//<![CDATA[ 

$(function() {

    $.getJSON('sql.php', function(data) {
        // Create the chart
        window.chart = new Highcharts.StockChart({
            chart : {
                renderTo : 'container'
            },

            rangeSelector : {
                selected : 1
            },

            title : {
                text : 'AAPL Stock Price'
            },

            series : data
        });
    });

});

//]]>  

</script>


</head>
<body>
  <script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>

<div id="container" style="height: 500px; min-width: 500px"></div>

</body>


</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-30 04:33:56

这条线

代码语言:javascript
复制
$rows[$i]['data'][] = '['.$r['(unix_timestamp(fecha)*1000)'].','.$r['monto'].']';

应该是这样的

代码语言:javascript
复制
$rows[$i]['data'][] = array($r['(unix_timestamp(fecha)*1000)'],$r['monto']);

不要自己动手。只需构建数组结构,让json_encode为您完成其余的工作。

编辑更多建议:

改变这一点:

代码语言:javascript
复制
SELECT monto,(unix_timestamp(fecha)*1000) FROM ventas...

对此:

代码语言:javascript
复制
SELECT monto, (unix_timestamp(fecha)*1000) AS fecha_timestamp FROM ventas...

因此,您可以更容易地在php中访问它:

代码语言:javascript
复制
$rows[$i]['data'][] = array($r['fecha_timestamp'],$r['monto']);

编辑更多建议:

Mysql有时在unix_timestamp(fecha)*1000上有性能问题,因为它必须将它认为是32位int的东西转换为64位int,这很糟糕。在php中这样做。

改变这一点:

代码语言:javascript
复制
SELECT monto, (unix_timestamp(fecha)*1000) AS fecha_timestamp FROM ventas...

对此:

代码语言:javascript
复制
SELECT monto, unix_timestamp(fecha) AS fecha_timestamp FROM ventas...

因此,您可以在php中完成以下工作:

代码语言:javascript
复制
$rows[$i]['data'][] = array($r['fecha_timestamp']*1000,$r['monto']);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17386118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档