1

创建图表时,我在使用 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 没有​​更新值。

任何想法?

提前致谢。

4

1 回答 1

0

问题只是使用首次加载 DrawGraph页面时提供的数据绘制图表

要向页面获取新数据,您需要重新加载窗口以便 php 运行并将新数据写入页面

代替...
setTimeout(DrawGraph, 2500);

你可以试试...
setTimeout(function () {window.location.reload();}, 2500);

于 2016-08-19T12:24:23.367 回答