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.

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);
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);
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
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
D'après l'erreur, mon $datay serait compris comme une chaîne de caractères (string given).
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" ?