php - 谷歌饼图有问题从数据库中获取数据
问题描述
<?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"}]。我想知道为什么我不能在脚本中获取这些值。
解决方案
AS
在您的查询中,您使用关键字 命名计数结果列...
SELECT COUNT(*) AS MTOTAL
SELECT COUNT(*) AS FTOTAL
使用名称来引用记录集中的列...
用这个...
$s ['MTOTAL']
$s ['FTOTAL']
代替...
$s ['count(*)']
推荐阅读
- javascript - 为什么使用文档片段可以提高性能?
- java - 解析方法时加载约束冲突
- excel - 如何使用 Excel PowerQuery 动态过滤到仅 2 个月内的日期
- testing - 使用基于 Chromium 的浏览器使用 Selenium 更改窗口大小
- android - 应用内购买(IOS 和 Android),用于具有自己身份验证的应用
- python - 从光谱响应中查找色温
- kubernetes - Istio (1.6.2):有效 JWT 令牌的 RBAC 访问被拒绝
- objective-c - 释放类方法上的对象?
- javascript - 如何在对 Google Apps 脚本的发布请求中捕获上传的文件?
- progressive-web-apps - 如何在桌面上测试 beforeinstallprompt 事件以检查它是否正常工作