-2

我有一个记录实时传感器数据的 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 和其他好东西的新手,所以请理解。

谢谢你的帮助!

4

1 回答 1

1

如果您知道每个传感器数据之间总是有一个空格,您可以从 MySQL 中选择您的系列数据,将传感器列值拆分为一个空格并将其发送到您想要的任何图表系统。我不确定 MySQL 是否有内置的拆分功能,但我会检查它(我知道 SQL Server 没有)。

于 2012-12-12T16:30:09.347 回答