首页 > 解决方案 > Dygraph,将 PHP/MYSQL 输出解析成图表

问题描述

我正在尝试使用 PHP 将数据从我的 MYSQL db(家庭物联网项目)直接拖到一个 dygraph 图表中(而不是提取、解析成 CSV 文件然后显示,这看起来很笨拙)。我相信我的路线应该可以工作,但显然我不正确,因为它没有正确显示(这里的小片段):

<html>
<head>
<body style="color: rgb(0, 0, 0); background-color: rgb(55, 55, 55)" alink="#ee0000" link="#0000ee" vlink="#551a8b">
<div style="text-align: center;"><span style="color: rgb(255, 255, 255);">Test<br></span>
<br>
<script type="text/javascript"
src="dygraph.js"></script>
</head>
<body>
<table style="margin:0px auto" border="0" width="500" align="center">
<tr>
<td style="background-color: #FFFFFF">
<div id="graphdiv2"
style="width:500px; height:300px;"></div>
<script type="text/javascript">
g2 = new Dygraph(document.getElementById("graphdiv2"),
<?php
$mysql_host = "localhost:3306";
$mysql_db = "mqtt";
$mysql_user = "*****";
$mysql_pw = "*****";
$connection = mysqli_connect($mysql_host, $mysql_user, $mysql_pw, $mysql_db);
$mysql_table = "analog_data";
if (!$connection) {
    echo "Connection Error." . PHP_EOL;
    echo "Error: " . mysqli_connect_errno() . PHP_EOL;
    echo "Message: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
/* Select queries return a resultset */
$result = $connection->query("SELECT DATE_FORMAT(datum, '%Y/%m/%d %H:%i:%s') AS date, datum, analog0, analog1 FROM ".$mysql_table); 
echo "[";  
while($row = mysqli_fetch_array($result))
{
$utime = strtotime($row[datum]); 
$diffutime = $utime - $lastutime; 
if ($diffutime > 600) { 
    echo "["."new Date(\"".$row['date']."\")".",NaN,NaN],"; 
    } 
    else { 
        echo "["."new Date(\"".$row['date']."\")".",".$row['analog0'].",".$row['analog1']."],"; 
        } 
    $lastutime = strtotime($row['datum']);
}
echo "]";
$_SESSION["dcount"] = $dcount;
mysqli_close($connection);
?>,
{rightGap: 20,
connectSeparatedPoints: true,
labels: [ "Datum", "A0", "A1" ] }          // options
);
</script>
</div>
</td>
</tr>
</table>
<div style="text-align: center;"><span style="color: rgb(255, 255, 255);">
<?php
    echo "<br>".$_SESSION["dcount"]." D ";
?>
</span>
</body>
</html>

这导致

Uncaught SyntaxError: Unexpected token '<'

在最初的 <?php

如果我只在页面中单独使用 php 脚本,它会执行并显示我想注入到 dygraph 调用中的内容,所以我认为这是由于尝试调用中执行 PHP 造成的。然而,这似乎是它在许多在线教程中的完成方式,这是主要来源https://geekynnotsogeeky.wordpress.com/2014/04/09/paasing-array-data-to-dygraphs-using-php /

chrome 解析的源代码显示了完整的页面代码,它实际上并没有对任何脚本起作用。

谁能指出我应该如何做到这一点的例子,或者解释我的愚蠢错误是什么?

标签: javascriptphpdygraphs

解决方案


推荐阅读