【问题标题】:Google pie chart having issue to take data from Database谷歌饼图有问题从数据库中获取数据
【发布时间】:2018-10-13 04:05:20
【问题描述】:
<?php
include('classes/DB.php');
$male = DB::query('SELECT COUNT(*) AS MTOTAL FROM users WHERE gender=\'male\';');
$female = DB::query('SELECT COUNT(*) AS FTOTAL FROM users WHERE gender=\'female\';');
?>

<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([
            ['Task', 'Number of Male and Female visitors'],
            ['Male', <?php while ($s = $male->fetch()) {echo $s ['count(*)'];}?>],
            ['Female', <?php while ($s = $female->fetch()) {echo $s ['count(*)'];}?>],
            ]);
            var chart = new google.visualization.PieChart(document.getElementById('piechart'))
            chart.draw(data, options);} </script>
</head>
<body>
<div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
</html>

我想知道为什么我得到空数据。当我调用 echo json_encode($male) 和 json_encode($female) 时,我有真正的价值观。在这种情况下,我的数据库中有一个男性用户和三个女性用户,所以我看到输出为 [{"MTOTAL":"1","0":"1"}] [{"FTOTAL":"3"," 0":"3"}]。我想知道为什么我不能在脚本中获取这些值。

【问题讨论】:

  • 您可以将查询括在" 中,这样您就不必转义'
  • &lt;?php while ($s = $male-&gt;fetch()) {echo $s ['count(*)'];}?&gt; 尝试将其添加到$female = DB::query 下方,看看是否会导致任何错误。也可以按照guide 启用错误
  • 我收到了这个错误,未定义的索引:COUNT(*)

标签: php mysql charts google-visualization


【解决方案1】:

在您的查询中,您使用 AS 关键字命名计数结果列...

SELECT COUNT(*) AS MTOTAL
SELECT COUNT(*) AS FTOTAL

使用名称来引用记录集中的列...

用这个……

$s ['MTOTAL']
$s ['FTOTAL']

而不是……

$s ['count(*)']

【讨论】:

  • 我也试过这个。我发现问题在于我认为连接到数据库的方式。我试过 mysqli_query , $query = "SELECT gender, COUNT(*) as number FROM users GROUP BY gender";和 $result =mysqli_query($connect,$query);和内部脚本 while($row=mysqli_fetch_array($result)) { echo "['".$row["gender"]."',".$row ["number"]."],"; }
  • 它们几乎相同,但我无法以某种方式获取数据。但是是的 mysqli_query 解决了这个问题
猜你喜欢
  • 2020-07-24
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多