我有一个记录实时传感器数据的 MySQL 数据库。在我的表中,我有 ID(自动递增)、TimeStamp 和 SensorData。我正在记录多个传感器(压力、温度等)并将它们全部存储在 SensorData 列中。它是空格分隔的。所以它看起来像:
33.5 108.3 443.2 44.2 779.553
我想在网站上实时绘制这些信息。到目前为止,我已经设置了 Flot,它将查询我的数据库并返回结果,但我不知道如何解析 SensorData 列,这样我就可以为每个传感器绘制一个图。
无法修改正在向 SQL 服务器发送数据的设备,因此我将始终在一列中有多个传感器条目。这是我目前用于 Flot 的代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Flot Examples</title>
<link href="layout.css" rel="stylesheet" type="text/css">
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="js/flot/excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="js/flot/jquery.js"></script>
<script language="javascript" type="text/javascript" src="js/flot/jquery.flot.js"></script>
</head>
<body>
<h1>Apex HiPoint, LLC</h1>
<div id="placeholder" style="width:600px;height:300px;"></div>
<?php
$server = "www.freesql.org";
$user="un";
$password="pw";
$database = "testdb";
$connection = mysql_connect($server,$user,$password);
$db = mysql_select_db($database,$connection);
$query = "SELECT Id, TME FROM SData";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$dataset1[] = array($row['Time'],$row['SensorData']);
}
?>
<script type="text/javascript">
$(function () {
var dataset1 = <?php echo json_encode($dataset1); ?>;
$.plot($("#placeholder"), [ dataset1 ]);
});
</script>
</body>
</html>
所以我的最终目标是拥有一个包含多个情节的网页。RealTime 中每个传感器的一个绘图。15-30 秒更新是可以的。而且我无法修改数据库的结构,因此所有传感器数据都包含在该记录中。我是 php、mysql 和其他好东西的新手,所以请理解。
谢谢你的帮助!