В круговой диаграмме Google возникла проблема с получением данных из базы данных - PullRequest
0 голосов
/ 03 мая 2018
<?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" }]. Я хотел бы знать, почему я не могу получить эти значения в сценарии.

1 Ответ

0 голосов
/ 03 мая 2018

в вашем запросе, вы называете столбец результата подсчета, используя ключевое слово AS ...

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

использовать имя для ссылки на столбец в наборе записей ...

используйте это ...

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

вместо ...

$s ['count(*)']
...