Столбчатая диаграмма Javascript с номерами томов из базы данных, не отображаемыми на веб-странице php - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь отобразить количество заказов в месяц на гистограмме, у меня есть два отдельных запроса sql, которые я протестировал, и оба считали данные в правильном формате.Однако, когда я запускаю файл в браузере, ничего не отображается, и я не получаю ошибки в своей консоли.Ниже мой код.

<?php
$host = "localhost";
	$user = "root";
	$pass = "";
	$db = "paperlesspub";
	
	$conn = new mysqli($host, $user, $pass, $db);
        

$month = mysqli_query($conn, "SELECT MONTH(booking_date) FROM `booking`");
$sales = mysqli_query($conn, "select Month(booking_date) as Month, count(customer_ID) as Booking FROM booking GROUP BY month(`booking_date`)");


?>

Это код моей диаграммы

<script>
            var ctx = document.getElementById("myChart");
            var myChart = new Chart(ctx, {
                type: 'bar',
                data: {
                    labels: <?php while ($b = mysqli_fetch_array($month)) { echo '"' . $b['MONTH(booking_date)'] . '",';}?>],
                    datasets: [{
                            label: '# of Bookings',
                            data: <?php while ($p = mysqli_fetch_array($sales)) { echo '"' . $p['count(customer_ID'] . '",';}?>],
                            backgroundColor: [
                                'rgba(255, 99, 132, 0.2)',
                                'rgba(54, 162, 235, 0.2)',
                                'rgba(255, 206, 86, 0.2)',
                                'rgba(75, 192, 192, 0.2)',
                                'rgba(153, 102, 255, 0.2)',
                                'rgba(255, 159, 64, 0.2)'
                            ],
                            borderColor: [
                                'rgba(255,99,132,1)',
                                'rgba(54, 162, 235, 1)',
                                'rgba(255, 206, 86, 1)',
                                'rgba(75, 192, 192, 1)',
                                'rgba(153, 102, 255, 1)',
                                'rgba(255, 159, 64, 1)'
                            ],
                            borderWidth: 1
                        }]
                },
                options: {
                    scales: {
                        yAxes: [{
                                ticks: {
                                    beginAtZero: true
                                }
                            }]
                    }
                }
            });
        </script>
           

Любой совет будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 января 2019

похоже, что вам не хватает открывающей скобки ([) для ваших массивов.

здесь ...

labels: <?php while ($b = mysqli_fetch_array($month)) { echo '"' . $b['MONTH(booking_date)'] . '",';}?>],

и здесь ...

data: <?php while ($p = mysqli_fetch_array($sales)) { echo '"' . $p['count(customer_ID'] . '",';}?>],

должно быть ...

labels: [<?php while ($b = mysqli_fetch_array($month)) { echo '"' . $b['MONTH(booking_date)'] . '",';}?>],

и ...

data: [<?php while ($p = mysqli_fetch_array($sales)) { echo '"' . $p['count(customer_ID'] . '",';}?>],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...