【问题标题】:php chart not showing all fieldsphp图表未显示所有字段
【发布时间】:2019-04-08 09:36:52
【问题描述】:

我正在使用带有来自 sql DB 的数据的谷歌图表(在 php 网页上)。我遇到的问题是它没有正确显示字段名称和值,它只是显示第一个字段“费用”的值。它应该显示两个字段“费用”和“收入”以及数据库中的值。任何想法我做错了什么?

我的代码如下:

<?php

$dbhandle = new mysqli('localhost','root','','useraccounts');
echo $dbhandle->connect_error;

$query = "SELECT * FROM ctincome";
$res = $dbhandle->query($query);
?>


<html>
<head>
<script type="text/javascript" 
src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
  google.charts.load("current", {packages:["corechart"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['expense','income'],
  <?php 
  while($row=$res->fetch_assoc())

  {
      echo "['".$row['expense']."','".$row['income']."'],";
  }

  ?>
    ]);

    var options = {
      title: 'Expenses to Income',
      pieHole: 0.4,
    };

    var chart = new 
   google.visualization.PieChart(document.getElementById
   ('donutchart'));
    chart.draw(data, options);
   }
   </script>
   </head>
   <body>
   <div id="donutchart" style="width: 900px; height: 500px;"></div>
   </body>
   </html>

【问题讨论】:

标签: php sql charts google-visualization


【解决方案1】:

收入列的值应该是数字,而不是字符串。

从第二列中删除单引号。

来自……

echo "['".$row['expense']."','".$row['income']."'],";

到...

echo "['".$row['expense']."',".$row['income']."],";

【讨论】:

  • 这个问题好运吗?
【解决方案2】:

根据我在跨浏览器或我解决的 javascript 错误方面的经验,我有三个建议。

第一点:你只是呼应,你需要使用串联

<?php 
  $data = '';
  while($row=$res->fetch_assoc())

  {
      $data .= "['".$row['expense']."','".$row['income']."'],";
  }

  ?>

 var data = google.visualization.arrayToDataTable([
      ['expense','income'],
      <?php echo $data; ?>
    ]);

第二点:在javascript中,最后一个逗号可能有效,也可能无效,如果是最后一行,最好不要附加逗号。

var data = google.visualization.arrayToDataTable([
      ['expense','income'],
  <?php 
  while($row=$res->fetch_assoc())

  {
      if(last row )
       $data .= "['".$row['expense']."','".$row['income']."']";
       else  $data .= "['".$row['expense']."','".$row['income']."'],";
  }

  ?>
    ]);

第三个建议:检查var data的数据类型连接前后

【讨论】:

    猜你喜欢
    • 2019-10-13
    • 2014-01-08
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多