【发布时间】:2018-09-21 11:44:37
【问题描述】:
我正在使用 mySQL 和 Highcharts 进行项目。 首先我有一个 ESP32 有几个,其测量值被写入 一个名为“MariaDB”的数据库。 我在 Highsotck 图表中表示的数据库中的这些测量值。
到目前为止效果很好,但我真正的问题是:
我有一个 data.php 文件和一个 main.php 文件。我想改变 这两个文件之间的字符串“$sensorid”。我可以将变量“$sensorid”从 main.php 发送到 使用“会话”命令。这也有效,但我不能在 在 data.php 文件中(但使用 echo 正确发送了值)。
<?php
SESSION_START();
echo "Die empfangene SensorID lautet" .
$_SESSION["sensorid"] ; //This output is correct :)
date_default_timezone_set('Europe/Berlin');
$con = mysql_connect("IP of database","username","password");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('MyHome', $con);
$result = mysql_query("SELECT * FROM `Messwerte` WHERE SensorID = '$sensorid' "); /*In this part I need the value '$sensorid'!*/
while($row = mysql_fetch_array($result)) {
$datum = $row['DateTime'];
$value = round($row['Messwert'],1);
$uts = strtotime ($datum);
if (date('I', time()))
{
$uts = $uts + 7200;
$x=1;
}
else
{
$uts=$uts+3600;
if($x==1)
{
$uts=$uts-7200;
$x=0;
}
}
$datum=date('l, F j y H:i:s',$uts);
$uts *= 1000; // convert from Unix timestamp to JavaScript time
$dataIN[] = array((float)$uts,(float) $value);
}
echo json_encode($dataIN);
mysql_close($con);
?>
我希望你明白我的意思(我来自德国,所以我的英语不太好)否则就问吧。
【问题讨论】:
-
$sensorid = $_SESSION["sensorid"] ;我认为您想从会话中获取数据。您必须声明变量或直接在 mysql 查询中传递 $_SESSION["sensorid"]。
-
mysql_*functions are deprecated!。请改用mysqli_* 函数或PDO mysql。 (德语链接) -
更改 $result = mysql_query("SELECT * FROM
MesswerteWHERE SensorID = '$sensorid'"); /*在这部分我需要值'$sensorid'!*/ to: $result = mysql_query("SELECT * FROMMesswerteWHERE SensorID = '".$_SESSION["sensorid"]."' "); /*在这部分我需要值'$sensorid'!*/ -
您应该阅读有关 variable scope 的内容,掌握这将在未来为您节省大量时间。同时,在使用之前尝试声明一个本地(文件)变量
$sensorId=$_SESSION['sensorId'];。 -
你是在一个请求中加载两个文件,还是在一个请求中调用每个文件?
标签: php