【发布时间】:2014-07-08 14:20:08
【问题描述】:
我想用PHP从html请求一个日期时间变量,
并使用该变量从mysql数据库中选择数据。然后制作一个json来生成highchart。
它成功生成了json但没有生成highchart。
我使用 Firebug,它说 TypeError: obj is null
这是我的代码
PHP
<?php
header('Content-type: application/json');
$con = mysql_connect("localhost","root","");
mysql_select_db("project", $con);
$month=$_REQUEST['select_month'];
$sqlChart_Q="SELECT T,value FROM `Temperature`WHERE month(T)='$month'";
$sqlChart_R=mysql_query($sqlChart_Q);
while($arrChart_ROW=mysql_fetch_array($sqlChart_R)) {
$time=strtotime($arrChart_ROW[0])*1000;
$temp=(float)$arrChart_ROW[1];
$arrChart[]=array("time" => $time,"value" => $temp);
}
echo json_encode($arrChart);
?>
和js
var chart;
$(document).ready(function() {
var options = {
chart: {
renderTo: 'month',
type: 'spline',
},
title: {
},
xAxis: {
type: 'datetime'
},
yAxis: {
},
series: [{
name: 'Temperature',
data: []
}]
};
$.getJSON('PHP/db_month.php', function(json) {
temp = [];
$.each(json, function(key,value) {
temp.push([value.time,value.value]);
});
options.series[0].data = temp;
chart = new Highcharts.Chart(options);
});
});
json (select_month=5;$month=$_REQUEST['select_month'])
[{"time":1400076317000,"value":50},{"time":1400076322000,"value":25},{"time":1400076327000,"value":34},{"time":1400110911000,"value":50},{"time":1400110916000,"value":43},{"time":1400110919000,"value":75},{"time":1400110920000,"value":35},{"time":1400110922000,"value":46},{"time":1400110924000,"value":66},{"time":1400110925000,"value":73},{"time":1400113566000,"value":20},{"time":1400161118000,"value":55},{"time":1400186496000,"value":50},{"time":1400193165000,"value":43},{"time":1400196532000,"value":50}]
顺便说一下,当sql函数改成
SELECT T,value FROM `Temperature`WHERE month(T)='5'
它会成功生成5月创建数据的highchart。
(PS:T的类型是时间戳,不知道有没有关系。
我的代码有什么问题? 有人可以帮我解决这个问题。 非常感谢你 !!
【问题讨论】:
标签: javascript php mysql json highcharts