Показать гистограмму по MySQL ВЫБРАТЬ СЧЕТЧИК (*) GROUP BY - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь попрактиковаться в Javascript и этих гистограммах, которые связаны с моей базой данных MySql. Тем не менее, я не могу получить результат от "SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name", используя гистограмму JavaScript. На данный момент, с этими кодами, которые я собираюсь опубликовать, он показывает 2 категории успешно, однако столбцы / счетчик не будут показывать, в котором он должен показать, сколько «завершено» и сколько «в процессе»,Вот скриншот моего нынешнего кода:

IMAGE OF THE GRAPH

А вот мой код базы данных:

<?php
header('Content-Type: application/json');
$conn = mysqli_connect("localhost","root","","dbname");
$sqlQuery = "SELECT con_stat, COUNT(*) FROM con_tab GROUP BY con_stat";
$result = mysqli_query($conn,$sqlQuery);
$data = array();
foreach ($result as $row)
    {
        $data[] = $row;
    }

mysqli_close($conn);
echo json_encode($data);
?>

А вот код JavaScript вкоторый, я думаю, имеет отсутствующую функцию или код:

<script>
    $(document).ready(function () {
        showGraph();
    });


    function showGraph()
    {
        {
            $.post("data.php",
            function (data)
            {
                console.log(data);
                var category = [];
                var counts = [];

                for (var i in data) {
                    category.push(data[i].con_stat);
                    counts.push(data[i].count);
                }

                var chartdata = {
                    labels: category,
                    datasets: [
                        {
                            label: 'Completed and On-going',
                            backgroundColor: '#49e2ff',
                            borderColor: '#46d5f1',
                            hoverBackgroundColor: '#CCCCCC',
                            hoverBorderColor: '#666666',
                            data: counts
                        }
                    ]
                };

                var graphTarget = $("#graphCanvas");

                var barGraph = new Chart(graphTarget, {
                    type: 'bar',
                    data: chartdata
                });
            });
        }
    }
</script>

Заранее спасибо.

1 Ответ

2 голосов
/ 17 октября 2019

В коде PHP есть пара вещей, которые выглядят некорректно или пропускают шаги. Вы должны назначить псевдоним для count(*), чтобы JavaScript мог его реально найти (data[i].count и т. Д.), И вы должны fetch записи

header('Content-Type: application/json');
$conn = mysqli_connect("localhost","root","","dbname");

/* assign an alias to count(*) */ 
$sqlQuery = "SELECT con_stat, COUNT(*) as `count` FROM con_tab GROUP BY con_stat";
$result = mysqli_query($conn,$sqlQuery);

$data = array();

/* fetch the records */
while( $rs=$result->fetch_assoc() ) $data[]=$rs;

mysqli_close( $conn );
echo json_encode( $data );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...