Morris JS показывает только последние данные из MySQL

#php #mysql #mysqli #charts #morris.js

#php #mysql #mysqli #Диаграммы #morris.js

Вопрос:

Я пытаюсь динамически получать данные из таблицы в диаграмме Морриса. Но проблема в том, что он показывает только отдельные данные из таблицы, которая является последними данными.Я подсчитываю данные за месяц. но данные, которые я получаю, — это данные за последний месяц

Вот PHP-скрипт ниже :

 <?php
$query = "SELECT tots.*, @var := @var   tots.`count`
FROM (
    SELECT
       YEAR(created_at) AS `year`,
       MONTHNAME(created_at) AS `month`,
       COUNT(*) AS `count`
       FROM users
       GROUP BY `year`, `month`
     ) AS tots, (SELECT @var := 0) AS inc" ;

$result = mysqli_query($conn, $query) ;

while($row = mysqli_fetch_array($result))
{

$chart_data = "{ month:'".$row["month"]."', count:".$row["count"]."}, ";
}
$chart_data = substr($chart_data, 0, -2) ;
?>
  

И вот мой скрипт Morris JS :

 <script>
Morris.Line({
element : 'chart',
data:[<?php echo $chart_data; ?>],
xkey:'month',
ykeys:['count'],
labels:['count'],
hideHover:'auto',
});
</script>
  

Результат, который я получаю, таков.
введите описание изображения здесь
что не подходит, я хочу строку ежемесячно:

Комментарии:

1. $chart_data всегда указывайте значение только последней строки, вот почему. Объединить ваше значение: $chart_data .= "{ month:'".$row["month"]."', count:".$row["count"]."}, "

2. выполнение этого выдает мне ошибку: Неопределенная переменная: chart_data в C:xampphtdocslinechartindex.php

3. сначала определите свою переменную перед циклом while $chart_data = "";

4. Ошибка устранена. спасибо за это. но я все еще не могу получить результат на графике

5. Вот обновленный код: $chart_data = «» ; while($row = mysqli_fetch_assoc($result)) { $chart_data .= «{ месяц:'».$строка[«месяц»].»‘, count:».$строка[«количество»].»}, «; } $ chart_data = substr($chart_data, 0, -2) ;

Ответ №1:

Кажется, метка слишком длинная. Вы можете попробовать использовать более короткую метку, например, Jan-19 вместо January 2019 .