创建图表时,我在使用 mysql 数据库和 php 时遇到问题。
这是我的代码:
<?php session_start(); ?>
<!DOCTYPE html >
<html>
<head>
<link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
<script src="RGraph/libraries/RGraph.common.core.js" ></script>
<script src="RGraph/libraries/RGraph.line.js" ></script>
<title>Line chart with scrolling effect</title>
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A chart which updates itself every 250ms producing a scrolling effect" />
</head>
<body>
<h1>Line chart with scrolling effect</h1>
<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
<script>
data = RGraph.arrayPad([], 500);
function DrawGraph ()
{
RGraph.clear(document.getElementById("cvs"));
RGraph.ObjectRegistry.clear();
var line = new RGraph.Line({
id: 'cvs',
data: data,
options: {
colors: ['green'],
linewidth: 1,
filled: true,
fillstyle: 'rgba(128,255,128,0.5)',
ymax: 60,
tickmarks: null,
shadow: false,
numxticks: 5,
labels: ['0s','5s','10s','15s','20s','25s'],
// labels: ['Now','25s','50s','75s','100s','125s'],
backgroundGridAutofitNumvlines: 5,
textAccessible: true
}
}).draw()
<?php
$host="localhost";
$user="root";
$pass="P@ssw0rd";
$dbh = new PDO("mysql:host=$host;dbname=VGW", $user , $pass );
$req="SELECT CPUUtilization from G_info where login_id='".$_SESSION['login_device_id']."' limit 30;";
$stmt=$dbh->query($req);
if(!$stmt)
{
echo "Lecture impossible";
}
else
{
$nblig=$stmt->rowCount();
$ligne=$stmt->fetchObject();
if ($ligne != null) {
do
{
$f=$ligne->CPUUtilization;
?>
r = <?php echo $f; ?>; data = [r].concat(data);data.pop();
<?php
}
while ($ligne = $stmt->fetchObject()) ;
}
else
{echo "<br> \n No such result";}
$stmt->closeCursor();
$dbh=null;
}
?>
setTimeout(DrawGraph, 2500);
}
window.onload = function ()
{
DrawGraph();
};
</script>
</body>
</html>
问题是在图表的输出中:
如果修改了数据库(表 g_info)中的 30 个值,则查询返回与函数中第一个条目相同的结果。似乎 $req 没有更新值。
任何想法?
提前致谢。