2016-08-19 62 views
1

我在創建圖表時使用mysql數據庫和php時出現問題。從圖表中的數據庫中選擇不更新值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="[email protected]"; 
     $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沒有更新這些值。

有什麼想法?

在此先感謝。

回答

0

問題DrawGraph簡單繪製與當頁面第一加載

,以獲得新的數據到頁面提供的數據圖表,你需要重新加載窗口PHP運行並寫入新的數據頁面

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

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

+0

理想情況下,你想單獨的PHP和HTML/JavaScript的 - 有PHP返回只有數據,然後使用JavaScript/AJAX從PHP獲取數據 - 雖然不同的圖表庫,[這裏是一個例子](http ://stackoverflow.com/questions/38947898/redraw-google-chart-based-on-user-input-via-ajax-request/38955110#38955110) – WhiteHat

+0

這個問題的運氣? – WhiteHat

相關問題