Bonjour à tous,
Je séche sur un comportement que je ne comprends pas.
J'utilise 3 fois une fonction pour récupérer une requête SQL.
Pris unitairement, les valeurs sont correctes mais quand je le fais en boucle, la dernière requête écrase les précédentes !!!

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
 
    $end = $dateTime()->format('Y-m-d');
 
    $begin = new DateTime($end);    
    $begin->modify("-12 Month");    
    $opt =Doctrine_core::GetTable('assure_employeur')->derniers_mois($assure->getId(),$begin->format('Y-m-d'), $end)->fetchOne();
    echo $opt->getHeure();
 
    $begin = new DateTime($end);    
    $begin->modify("-6 Month");    
    $opti = Doctrine_core::GetTable('assure_employeur')->derniers_mois($assure->getId(),$begin->format('Y-m-d'),$end)->fetchOne();
    echo $opti->getHeure();
 
    $begin = new DateTime($end);    
    $begin->modify("-3 Month");    
    $_8 = Doctrine_core::GetTable('assure_employeur')->derniers_mois($assure->getId(),$begin->format('Y-m-d'),$end)->fetchOne();
    echo $_8->getHeure();
 
    echo $opti->getHeure();
ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public function derniers_mois($assure_id,$begin, $end )
    {               
        $q=  $this->queryOD($assure_id);
        $q->select('a.assure_id, SUM(p.salaire_brut) salaire_brut, SUM(p.salaire_net) salaire_net, SUM(p.heure) heure')
                ->andWhere('p.mois BETWEEN ? and ?', array($begin, $end))
                ->groupBy('a.assure_id')                
                ;
 
        return $q;
 
    }
à l'affichage je retrouve
80
60
30
30

alors que le dernier devrait être 60 !!!