Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在highstock上绘制多系列数据时出现问题_Mysql_Json_Highstock - Fatal编程技术网

Mysql 在highstock上绘制多系列数据时出现问题

Mysql 在highstock上绘制多系列数据时出现问题,mysql,json,highstock,Mysql,Json,Highstock,有一个个人温度监测项目,将家中各个房间的所有温度记录到mysql数据库中,前几天我遇到了highstock/图表,一直在玩它,但我似乎无法让它处理多个系列的数据 如何将数据记录到表中 datetime是的,它应该是您包含的格式,更多的日期应该是时间戳(时间单位为毫秒),临时需要数字值 我认为最好的方法是按照“比较演示”进行操作,让php代码只生成一个数组,具体取决于指定房间的url参数: json.php?room=attic json.php?room=cupboard a您只输出房间的数据

有一个个人温度监测项目,将家中各个房间的所有温度记录到mysql数据库中,前几天我遇到了highstock/图表,一直在玩它,但我似乎无法让它处理多个系列的数据

如何将数据记录到表中


datetime是的,它应该是您包含的格式,更多的日期应该是时间戳(时间单位为毫秒),临时需要数字值

我认为最好的方法是按照“比较演示”进行操作,让php代码只生成一个数组,具体取决于指定房间的url参数:

json.php?room=attic
json.php?room=cupboard
a您只输出房间的数据

然后,highstocks使用以下函数调用单独的php文件:

names = ['attic', 'cupboard', '...'],

$.each(names, function(i, name) {

    $.getJSON('jsonp.php?room='+ name.toLowerCase() +'-c.json&callback=?',  function(data) {
...

但是说实话,我仍然在寻找一种避免多次http调用/sql查询的方法:-)特别是对于[date1,value1,value1,value3],[date2,value1,value1,value3]…

我已经使用这个项目大约6个月了,我想分享一些其他人可能会觉得有用的小技巧。
一切都运行得很好,我有5个raspberry pi将温度数据记录到CentOS服务器上的MYSQL数据库中,但突然它坏了。该页面根本不会显示任何内容,但在网络选项卡下的Firefox开发者工具控制台中,我可以看到5个数据库查询中有3个导致500个内部服务器错误。
这看起来很奇怪,因为我没有修改任何东西,一些故障排除最终导致我找到了httpd错误日志。出现php错误,表明最大内存分配已用尽

PHP致命错误:允许的内存大小134217728字节已用尽 (试图分配757字节)在 /var/www/html/tempers/json_hs_temps.php

我在json_hs_temps.php文件中添加了以下代码,将内存从默认的128Mb增加到1Gb

ini_set('memory_limit', '1024M');
这立即解决了问题,图形再次加载良好

此外,由于以下时区错误,httpd错误日志也被放大(千兆字节):

PHP警告:strotime():依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date\u default\u timezone\u set()函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能是您拼错了时区标识符。我们暂时选择了时区“UTC”,但请设置date.timezone以选择您的时区。在第27行的/var/www/html/tempers/json_hs_temps.php中,参考:

解决方法是在json_hs_temps.php文件中添加以下代码行以设置时区

date_default_timezone_set("Australia/Hobart");

我想这可能会发生在使用此代码的其他人身上,所以我希望它能帮助其他人。

是的,按照您所描述的[datetime,temp],[1374598278000,16.75],[1374598348000,16.75]获得了datetime和temp all设置,因为我目前可以一次绘制一个位置。我认为我最大的任务可能是编写查询,以便将数据提取出来,从而为多个位置格式化json,如[{name:'kitchen',dat]‌​a:[[date,temp],[date,temp],[date,temp]]},{name:'lounge',dat‌​答:[[date,temp],[date,temp],[date,temp]]}]尝试了一些方法,但似乎无法获得正确的查询。此结构看起来很好,但它是series对象。已使用最新的查询和输出更新了我的问题,但现在json输出出现问题。这是错误的,因为您添加了Tiioan参数“cupboard”[13752724600,22.63,所以请离开[137527226000,22.63]让我们知道是否有效。这会起作用的,就像我在图的顶部显示的那样,但我需要绘制多个位置:橱柜、阁楼、室外、主人、厨房,这样我可以比较多个系列,类似于这个演示,大家好,有人能帮我提供正确的语法吗,对于查询和json输出,我想nk它只是需要一些调整,但我对其中一些是新的,一直在谷歌上搜索和尝试不同的东西,没有太多的运气。这看起来像一个有趣的想法,会给它一个尝试,并返回给你。感谢这最终修复了它,现在有我所有的温度数据绘图。
json.php?room=attic
json.php?room=cupboard
names = ['attic', 'cupboard', '...'],

$.each(names, function(i, name) {

    $.getJSON('jsonp.php?room='+ name.toLowerCase() +'-c.json&callback=?',  function(data) {
...
ini_set('memory_limit', '1024M');
date_default_timezone_set("Australia/Hobart");