来自Mysql数据库的谷歌条形图

时间:2017-03-21 07:51:51

标签: php mysql google-visualization bar-chart

我有一个包含3个字段区域(vachar),new_customers(int)和old_customers(int)的mysql数据库。

我正在尝试使用谷歌图表和PHP创建一个条形图,但它不起作用。我想我在回声上做错了。 这是我的代码:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

 <script type="text/javascript">
 google.load('visualization', '1', {packages: ['corechart', 'bar']});
 google.setOnLoadCallback(drawMaterial);

 function drawMaterial() {
 var data = google.visualization.arrayToDataTable([
 ['Region', 'New Customers', 'Old Customers'],
 <?php 
 $query = "SELECT sum(new_customers) AS new, sum(old_customers) AS old, region FROM daily GROUP BY region";

 $exec = mysqli_query($con,$query);

 while($row = mysqli_fetch_array($exec)){

 echo "['".$row['region']."',";

 echo "['".$row['new']."',";

 echo "['".$row['old']."',";

 }
 ?>
 ]);

 var options = {

 title: 'Country wise new and returned visitors',

 bars: 'horizontal'
 };
 var material = new google.charts.Bar(document.getElementById('barchart'));
 material.draw(data, options);
 }
 </script>

1 个答案:

答案 0 :(得分:0)

您遇到的问题是图表没有采用数据变量中的三个参数。 目前你可以这样:00:20:30

将其更改为: ['Region', 'New Customers', 'Old Customers'], ,。

['Region', 'New Customers']中,PHP无法识别名称为while loop$row['new']的任何列。而是使用索引并将您的回声更改为: $row['old']&#34 ;;

我还建议你在函数外部进行sql查询,只进行sql结果的迭代(echo "['".$row[2]." [".$row[0]."]', ".$row[1]."],while loop)。

此外,您没有正确加载图表。您忘了添加单词&#39; chart&#39;:

echo

这是最终解决方案:

  google.charts.load('visualization', '1', {packages: ['corechart', 'bar']});
  google.charts.setOnLoadCallback(drawMaterial);

如果您有任何问题,请与我们联系。