MYSQL Query и Chart.js и переполнение стека

Надеюсь на некоторую помощь.

У меня есть данные в базе данных MYSQL, содержащей список компьютеров в компании. Одно из полей — это дата, когда был приобретен компьютер, другое — марка.

Я хочу создать гистограмму, используя Chart.js, показывающую количество компьютеров, которые у нас есть на каждый отдельный год. Таким образом, на оси X у нас есть все отдельные годы в виде меток, а на оси Y — количество компьютеров, приобретенных за каждый год.

Я написал этот код, но не могу заставить его работать:

Запрос:

$sql = "SELECT YEAR(purchased) AS years, COUNT(brand) AS 'count' FROM computers GROUP BY purchased, brand ORDER BY purchased";
$result = mysqli_query($conn, $sql);$years = array();
$count = array();
while ($row = mysql_fetch_assoc($result)) {
$years[]  = $row["years"];
$count[] = $row["count"];
}
mysqli_close($conn);

Тогда график:

<script>var barChartData = {
labels : <?php=json_encode($years);?>,
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data : <?php=json_encode($count);?>
}       ]

}
window.onload = function(){
var ctx = document.getElementById("canvas").getContext("2d");
ctx.canvas.height = 200;
window.myBar = new Chart(ctx).Bar(barChartData, {
responsive : true
});
}

</script>

Есть идеи, что я делаю не так. Изо всех сил пытались получить это на диаграмму.

Спасибо.

0

Решение

Ваши данные установлены в json_encode, это не то, как chart.js может их прочитать.

Измените свой код с:

<?php=json_encode($count);?>

Для того, чтобы:

["<?php echo implode('","',$count);?>"]

И за годы, из:

<?php=json_encode($years);?>

чтобы:

["<?php echo implode('","',$years);?>"]

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

0

Другие решения

Понял это:

1: Использовал этот запрос:

ВЫБЕРИТЕ ГОД (приобретен) в виде лет, СЧЕТ (ID) в качестве числа ОТ компьютеров ГРУППА ПО ГОДАМ

2: был TYPO! в то время как ($ row = mysql_fetch_assoc ($ result)) должно было быть:

while ($ row = mysqli_fetch_assoc ($ result)). Я забыл, что я в mysql_fetch!

Наряду с огромной помощью от Грега, он отлично работает сейчас.

Спасибо за помощь!

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector