我在创建图表时使用 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 似乎没有更新值。
有什么想法吗?
提前致谢。
最佳答案
问题是 DrawGraph
只是使用页面第一次加载时提供的数据绘制图表
要获取新数据到页面,需要重新加载窗口让php运行并写入新数据到页面
而不是...
setTimeout(DrawGraph, 2500);
你可以试试...
setTimeout(function () {window.location.reload();}, 2500);
关于javascript - 从图表中的数据库中选择不更新值 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034633/