J'aimerais ajouter des entrées dans un Array.
ci-joint le code :
$query_compt_st = $bdd->query('SELECT lieu, YEAR(date_cpa) annee, COALESCE(SUM(compt_nb),0) + COALESCE(SUM(compt_c),0) as total_compt
FROM CP_ANALYSE cp
INNER JOIN LIEUX l ON cp.id_lieu = l.id_lieu
GROUP BY lieu, YEAR(date_cpa)
ORDER BY lieu, YEAR(date_cpa)');
$lieu_vide = array_fill(1, 1, 0);
while ($row = $query_compt_st->fetch()) {
if ($row['lieu'] == 'LIEU1' || $row['lieu'] == 'LIEU2') {
if (!isset($tab[$row['annee']][$row['lieu']])) {
$tab[$row['annee']][$row['lieu']] = $lieu_vide;
}
$tab[$row['annee']][$row['lieu']] = $row['total_compt'];
}
}
$query_compt_st->closeCursor();
ça me donne le tableau suivant :
Array
(
[2006] => Array
(
[LIEU1] => 7500
)
[2007] => Array
(
[LIEU1] => 2500
[LIEU2] => 2550
)
[2013] => Array
(
[LIEU1] => 2451
[LIEU2] => 10674
)
[2014] => Array
(
[LIEU2] => 5000
)
)
C'est pour ensuite afficher un graphique. J'ai certains lieux qui n'ont pas les mêmes années. Et si jamais ils n'ont pas une entrée par année, le array pour le graphique affiche ligne par ligne donc ça décale tout et le graphique est faux.J'ai ajouté la boucle IF qui ne fonctionne pas et qui est sûrement très fausse au niveau du code. Mais J'ai essayé d'adapter avec un autre bout de code.
Il faudrait juste par exemple pour 2006, ajouter "LIEU2" avec zéro.... Et inversement "LIEU1" avec zéro pour l'année 2014.
J'ai beau lire et relire les tutoriaux sur les tableaux, mais dès qu'ils ont plusieurs niveaux avec un while, je suis totalement perdu !!!
Merci pour votre aide !!