2016-08-12 64 views
0

我有兩個php文件data.php和gaschart.php,data.php從sql和gaschart.php中提取數據繪製高圖表。我希望能夠實現這一點,意味着每秒更新圖表,數據庫也在每秒更新一次。任何人都可以用這段代碼來幫助我。任何人都可以請告訴我如何做到這一點我的代碼在這裏..?實時更新來自sql數據庫的高圖表

這是data.php

<?php 
     $con = mysql_connect("localhost","shsas",""); 

    if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
       } 

    mysql_select_db("shsas", $con); 

    $sth = mysql_query("SELECT Gaslevel FROM gas"); 
    $rows = array(); 
    $rows['name'] = 'Gaslevel'; 
    while($r = mysql_fetch_array($sth)) { 
    $rows['data'][] = $r['Gaslevel']; 
    } 

    $result = array(); 
    array_push($result,$rows); 

    print json_encode($result, JSON_NUMERIC_CHECK); 

    mysql_close($con); 
    ?> 

這是gaschart.php

 <script type="text/javascript"> 
    $(function() { 
    var chart; 
    $(document).ready(function() { 
    $.getJSON("data.php", function(json) { 

     chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'container', 
       type: 'line', 
       marginRight: 130, 
       marginBottom: 25, 
      }, 
      title: { 
       text: 'Gas Level Detection', 
       x: -20 //center 
      }, 
      subtitle: { 
       text: '', 
       x: -20 
      }, 
      xAxis: { 
       title: { 
        text: 'EventID' 
       }, 

      }, 
      yAxis: { 
       title: { 
        text: 'Level of gas' 
       }, 

      }, 
      tooltip: { 
       formatter: function() { 
         return '<b>'+ this.series.name +'</b><br/>'+ 
         this.x +': '+ this.y; 
       } 
      }, 
      legend: { 
       layout: 'vertical', 
       align: 'right', 
       verticalAlign: 'top', 
       x: -10, 
       y: 100, 
       borderWidth: 0 
      }, 
      series: json 
       }); 
      }); 

     }); 

     }); 
    </script> 
+1

更新數據庫每秒?想要使用傳統的HTTP請求更新圖表?聽起來很可怕的想法給我。 –

+0

這是一個項目,它有一個傳感器,它每秒鐘讀取數值並將其存儲在一個數據庫中,實際上時間段可能不同,可能是5秒左右,所以圖表也需要相應填充。 –

+0

使用套接字或流。你需要一個有點像Sensex的圖表,它不斷更新。我建議,請不要使用傳統的HTTP請求。 –

回答

0

我強烈建議你使用套接字嘗試。您可以檢查socket.io。雖然它是爲聊天而開發的。我相信,你可以將它用於你的用例。

另外,檢查elephant.io。它更通用。一個簡單易用的庫,旨在實現一些實時功能。你也可以爲你的項目嘗試這個。在內部,它使用socket.io

+0

謝謝兄弟..我會檢查它 –

+0

你可以請我告訴我如何執行它的代碼。它不適合我。 –