2015-06-02 319 views
0

試圖讓Google圖表通過php從本地mysql數據庫加載數據。頁面顯示空白。基於此example code。任何想法如何解決?Google Charts mysql PHP

<html> 
<head> 
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={ 
    'modules':[{ 
     'name':'visualization', 
     'version':'1', 
     'packages':['corechart'] 
    }] 
}"></script> 

<script type="text/javascript"> 
    google.setOnLoadCallback(drawChart); 

    function drawChart() { 
     var data = google.visualization.arrayToDataTable([ 
      ['Time', 'Temperature'], 
      <?php 
       $con = mysqli_connect("localhost", "root", "pass", "TempDB2"); 
       $query = "SELECT * FROM TempMeas"; 
       $result = mysqli_query($con, $query); 

       mysqli_close($con); 

       while ($row = mysqli_fetch_array($result)) 
       { 
        $time = $row['MeasTime']; 
        $temp = $row['Temp']; 
        echo "['$time', $temp],"; 
       } 
      ?> 
     ]); 

     var options = { 
      title: 'Company Performance', 
      curveType: 'function', 
      legend: { position: 'bottom' } 
     }; 

     var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); 

     chart.draw(data, options); 
    } 
</script> 
</head> 
<body> 
    <div id="curve_chart" style="width: 900px; height: 500px"></div> 
</body> 
</html> 
+0

我認爲在提取之前調用mysqli_close()可能會關閉mysqli_fetch_array需要的連接 – 321zeno

+0

謝謝嘗試,但仍然是空白。還有其他建議嗎? – graceyj20

+0

JavaScript部分運行良好,所以問題是PHP。我會看到什麼'var_dump($ con)'和'var_dump($ result')返回 – 321zeno

回答

2

我花了幾天這個亂搞的,我已經找到了最好的解決辦法是取消夫婦從圖表部分MySQL的查詢,並從JSON文件或PHP頁面閱讀根據https://developers.google.com/chart/interactive/docs/php_example#getdataphp-file

這樣您就可以從一個靜態JSON文件開始,並確保您的圖表正確顯示。一旦這個工作,然後使用PHP和MySQL查詢重新創建相同的JSON文件。

var jsonData = $.ajax({ 
     url: "jsonData.php", 
     dataType: "json", 
     async: false 
     }).responseText; 

    var data = new google.visualization.DataTable(jsonData); 

確保您的JSON是正確的是至關重要的。它看起來像你拉DATETIME這意味着,如果這是格式不正確,那麼你的圖形將不會顯示。它需要是「日期(2016,05,26,04,10)」

JSONLint是你的朋友。