Bonjour,
Pour générer un bargraphe de nombre de présents par date, je vais compter le nombre de personnes marquées présentes dans une table, le tout groupé par date de présence et rangé par ordre chronologique.
J'utilise JPGraph sur le site en developpement en local.
Le $datay devrait reprendre ces nombres l'un à la suite de l'autre, et séparés par une virgule. Soit $datay=array(7,7,7,9);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $requete3 = "SELECT DATE(`date_presence`) AS 'day', COUNT(*) AS 'number_of_users' // prépare le comptage avec conditions FROM `presences` // depuis la table des présences WHERE `present` LIKE '%Pr%' // compte que les personnes marquées présentes 'Présent' GROUP BY DATE(`date_entrainement`) // regroupe par date de présence ORDER BY date_entrainement ASC"; // et affiche dans l'ordre chronologique $result3 = mysqli_query($conn, $requete3); foreach($result3 as $row3) { $resultat3[] = $row3['number_of_users']; } $datay = implode(",",$resultat3);
Si je fais un echo $datay; , cela m'affiche bien 7,7,7,9
Hors, dans mon code, je n'arrive pas à ressortir un graphique de plusieurs barres, une seule barre s'affiche, avec 9 ou j'obtiens une erreur
D'après l'erreur, mon $datay serait compris comme une chaîne de caractères (string given).Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, string given in /jpgraph/jpgraph.php:5394 Stack trace: #0 /jpgraph/jpgraph_bar.php(50): Plot->__construct('7,7,7,9', false) #1 graph.php(85): BarPlot->__construct('7,7,7,9') #2 {main} thrown in /jpgraph/jpgraph.php on line 5394
Comment puis-je faire remonter le nombre de présents par jour dans un array comme décrit ci-dessus et que ce soit pris comme un type Countable|array et non une chaine "string" ?
Partager