Bonjour,

j'ai encore besoin de votre aide.
je voudrais lister pour chaque jour sur la période donné le nombre d'occupant trié par catégorie et type de garde.
Mon scripte fonctionne mais les résultats ne sont pas cohérant.
J'ai comme impression que mon tableau se vide quand je passe d'une boucle à l'autre.
Merci pour votre aide

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
$debut_garde='2025-02-02';
        $fin_garde='2025-02-09';
 
        //requette count pour chiens ou chats en garde indivduel
        $select1 = $connexion->prepare("SELECT 
            DP.ID_prest,
            DP.num_devis,
            DP.debut_garde,
            DP.fin_garde,
            DP.ID_animal,
            D.num_devis,
            D.etat_devis,
            A.ID_animal,
            A.genre_animal,
            P.ID_prest,
            P.typ_prest,
            P.mode_garde,
            (DATEDIFF(DP.fin_garde,DP.debut_garde)+1) AS nb_jours
            FROM devis_prest_tab DP 
            JOIN devis_tab D ON D.num_devis=DP.num_devis
            JOIN animal A ON A.ID_animal=DP.ID_animal
            JOIN prestation P ON P.ID_prest=DP.ID_prest
            WHERE P.typ_prest=:typ_prest 
                AND DP.debut_garde<=:date1 
                AND DP.fin_garde>=:date2 
                AND (D.etat_devis=:etat_devis OR D.etat_devis=:etat_devis1 OR D.etat_devis=:etat_devis2 OR D.etat_devis=:etat_devis3)
            order by DP.debut_garde
        ");
 
        //exécute requette indiv ou commun
            $select1->execute(array(
                ':typ_prest'=>'gardes',
                ':date1'=>$fin_garde,
                ':date2'=>$debut_garde,
                ':etat_devis'=>'envoyer',
                ':etat_devis1'=>'attente',
                ':etat_devis2'=>'valider',
                ':etat_devis3'=>'facturer'
            ));
            $resultat1 = $select1->fetchAll(PDO::FETCH_ASSOC);
            $nbrligne=count($resultat1);
 
 
        $tbl=array();
        $i='0';    
 
        while($i<$nbrligne){     
            $date_jour=$debut_garde;
            $ii='0'; $nbr='0';  $nbcc='0'; $nbcind='0';    $nbccl='0';    $nbchind='0'; $nbchcol='0';
 
            //je boucle sur les jours du devis en cours de traitement
            while($ii<$resultat1[$i]['nb_jours']){        
                $tbl[$date_jour]['total']['nb']= $nbr++;
 
                if($resultat1[$i]['genre_animal']='chat'){
                    if($resultat1[$i]['mode_garde']='commun'){
                        $tbl[$date_jour]['chat_com']['nb']= $nbcc++;
                    }
                    elseif ($resultat1[$i]['mode_garde']='individuel'){
                        $tbl[$date_jour]['chat_indiv']['nb']= $nbcind++;
                    }
                    elseif ($resultat1[$i]['mode_garde']='colocation'){
                        $tbl[$date_jour]['chat_coloc']['nb']= $nbccl++;
                    }
                }
                elseif($resultat1[$i]['genre_animal']='chien'){
                    if($resultat1[$i]['mode_garde']='individuel'){
                        $tbl[$date_jour]['chien_indiv']['nb']= $nbchind++;
                    }
                    elseif ($resultat1[$i]['mode_garde']='colocation'){
                        $tbl[$date_jour]['chien_coloc']['nb']= $nbchcol++;
                    }
                }
 
                $date_jour= date('Y-m-d', strtotime($date_jour.' + 1 DAY'));
                $ii++;
            }    
            $i++;
        }