Hallo,

Heeft er iemand een script om een grafiek op te maken van gegevens per maand van het jaar.
Ik heb dit al als voorbeeld , maar kan geen grafiek maken.

$sqlb="SELECT COUNT(*) as total FROM database WHERE MONTH(datin) = MONTH(CURRENT_DATE) AND YEAR(datin) = YEAR(CURRENT_DATE)";

$result = $con->query($sqlb);
$data =  $result->fetch_assoc();
echo '<center>';
echo '<font color ="black">Aantal ingaves deze maand : ' ;
echo'<font color ="red">'.$data['total'];
echo '<br>';



Dank bij voorbaat
Hoe ziet je lus eruit?

$x = 1;

do {
$sqlb="SELECT COUNT(*) as total FROM database WHERE MONTH(datin) = ".$x." AND YEAR(datin) = YEAR(CURRENT_DATE)";

$result = $con->query($sqlb);
$data =  $result->fetch_assoc();
echo '<center>';
echo '<font color ="black">Aantal voor maand  '.$x.' : ' ;
echo'<font color ="red">'.$data['total'];
echo '<br>';
$x++;
} while ($x <= 12);

Waarom je keuze voor een do while?
En waarom op deze merkwaardige manier waarbij je opnieuw een query uitvoert per iteratie?
Is dit gewoon gokken, of rücksichtslos maar erop los proberen zonder te weten wat je doet? :-P

Wat is er mis met een normale while? Zie ook: https://www.w3schools.com/php/php_mysql_select.asp
Maar dan moet je dus i.p.v. text printen een nieuwe array samenstellen.
Alvast bedankt voor alles, maar op deze manier ben ik niet verder geholpen.
Toch nogmaals mijn dank voor uw tijd.
Wat lukt er dan niet aan? Ik heb in dit topic al een stappenplan en een linkje naar W3Schools gegeven.
Waar loop je nog op vast? 90 Procent heb je al. Enkel de whileloop en de array.
Ik heb momenteel een goede array waar mijn getallen in zitten .
Als ik dit in de java ingeef zoals u mij dit zei krijg ik een wit scherm.
$tot = de volledige array

ziehier de volledige code

<html>
<head>
    <title>Staafdiagram voorbeeld met Chart.js</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
    <canvas id="myBarChart" width="400" height="400"></canvas>


    <script>
        // Je gegevens voor het staafdiagram
<?php

  
// query even ophakken in leesbare regels
$x = 1;
$tot=array();
do {
$sqlb="SELECT COUNT(*) as total FROM database WHERE MONTH(datin) = ".$x." AND YEAR(datin) = YEAR(CURRENT_DATE)";

$result = $con->query($sqlb);
$data =  $result->fetch_assoc();
echo '<center>';
echo '<font color ="black">Aantal voor maand  '.$x.' : ' ;
echo'<font color ="red">'.$data['total'];
echo '<br>';
array_push($tot,$data['total']);
$x++;
} while ($x <= 12);
?>		
		
        var data = {
            labels: ["januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
            datasets: [{
                label: "Cachen per maand",
                data: [<?php echo $tot;?> ], // Hier voeg je je eigen data toe.
                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, 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, 99, 132, 0.2)',
                    'rgba(54, 162, 235, 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, 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, 99, 132, 1)',
                    'rgba(54, 162, 235, 1)',
                ],
                borderWidth: 1
            }]
        };

        var options = {
            scales: {
                y: {
                    beginAtZero: true
                }
            }
        };

        // Maak een staafdiagram
        var ctx = document.getElementById('myBarChart').getContext('2d');
        var myBarChart = new Chart(ctx, {
            type: 'bar',
            data: data,
            options: options
        });
    </script>
</body>
</html>
Die do-while loop kan weggooien. Dat is echt nonsens wat je daar doet.
Check even op die link van W3Schools hoe ze dat doen.
Aantal voor maand 1 : 545
Aantal voor maand 2 : 6491
Aantal voor maand 3 : 13340
Aantal voor maand 4 : 1986
Aantal voor maand 5 : 1635
Aantal voor maand 6 : 1226
Aantal voor maand 7 : 1161
Aantal voor maand 8 : 521
Aantal voor maand 9 : 5265
Aantal voor maand 10 : 1435
Aantal voor maand 11 : 0
Aantal voor maand 12 : 0
Array ( [0] => 545 [1] => 6491 [2] => 13340 [3] => 1986 [4] => 1635 [5] => 1226 [6] => 1161 [7] => 521 [8] => 5265 [9] => 1435 [10] => 0 [11] => 0 )
Kijk, een die array die we onderaan zien, daar hebben we wat aan! :-)
Die kan je in implode() gebruiken.
Dit is momenteel niet mijn vraag, ik heb een array maar deze werkt blijkbaar niet in chart.js ???

Reageren