2014-08-31 114 views
1

我正在嘗試使用谷歌折線圖。我可以使用echo獲取頁面上打印的xy值,但不會顯示在圖表中。它給我以下錯誤:Google Chart錯誤:「X值列不能是字符串類型」

"X values column cannot be of type string"

我也關閉了DataTable後的while循環,但它也沒有工作。

的代碼如下:

<?php 

@mysql_connect("localhost","root","") or die ("MYSQL'e Baglanti Yok"); 
@mysql_select_db("exceltosql") or die ("Veritabanina baglanti yapilamadi"); 
$sql1= "SELECT x,y FROM veri "; 
$result1=mysql_query($sql1) or die(mysql_error()); 
$result_array = array(); 
while($row1 = mysql_fetch_array($result1)){ 
$result_array[] = $row1; 

echo "<pre>"; 
echo $row1 ['x']; 
echo $row1 ['y']; 
} 
?> 
<html> 
    <head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 


     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = google.visualization.arrayToDataTable([ 
     ['x', 'y'], 
     ['<?php $row1 ['x'];?>', '<?php $row1 ['y'];?>'], 



     ]); 

     var options = { 
      title: 'VO2 vs. VCO2 grafiği', 
      hAxis: {title: 'VCO2', minValue: 600, maxValue: 1500}, 
      vAxis: {title: 'VO2', minValue: 600, maxValue: 1500}, 
      legend: 'none' 
     }; 

     var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); 

     chart.draw(data, options); 
     } 

    </script> 
    </head> 
    <body> 
    <div id="chart_div" style="width: 900px; height: 500px;"></div> 
    </body> 
</html> 
+0

看看*實際*生成的HTML。它如何*錯誤*每個谷歌圖表文檔(和錯誤消息)?另外,與數據庫無關.. – user2864740 2014-08-31 09:02:09

+0

我檢查了HTML源代碼。它會生成DataTable代碼部分(5次 - 即DB中的行數),但會發生此錯誤。 – bantandor 2014-08-31 09:11:57

+0

錯誤是在說什麼是錯的。不要懷疑它。它說:「嘿,*不要給我字符串。」再次查看生成的HTML - 它怎麼錯了? – user2864740 2014-08-31 09:14:38

回答

0

此行的結果:

['<?php $row1 ['x'];?>', '<?php $row1 ['y'];?>'], 

將是這樣的:

['1', '2'], 

編碼的數值爲字符串(如錯誤消息所示)。刪除額外的報價應該是訣竅:

[<?php $row1 ['x'];?>, <?php $row1 ['y'];?>], 
+0

[<?php echo $ row1 ['x'];?>,<?php echo $ row1 ['y'];?>], 我改變了上面的一行。它確實有用,但我只能得到一個關鍵點。在源代碼中,我指出了那裏,但在圖上。另一方面,在使用數組的google示例中,他們在「]」之後放置了「,」逗號,但不是最後一個。因爲我把數據放在循環上,最後一點也得到「,」。 – bantandor 2014-08-31 09:25:39

+0

我想我應該使用「如果」但不知道如何:-)。繼續嘗試 – bantandor 2014-08-31 09:31:16

+0

','最後不是問題。只有一個分散點,因爲您沒有在代碼中的該點處循環結果集,因此只打印單個(最後一個)結果。 – ebo 2014-08-31 09:38:08

相關問題