从图表中的数据库中选择不更新值php

时间:2016-08-19 08:39:02

标签: javascript php mysql charts rgraph

创建图表时,我遇到使用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>

问题在于图表的输出:

如果修改了数据库中的30个值(表g_info),则查询将返回与函数中第一个条目相同的结果。 似乎$ req没有更新值。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

而不是...
setTimeout(DrawGraph, 2500);

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