2014-08-31 117 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

相关问题