Salut,
J'ai un problème pour l'affichage des résultats d'une requête avec doctrine
Voici ma requête :
Une déclaration est liée à un service, lui même lié à un département.
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 public function getNombreAccidentsParTypeAccidentEtDepartement($comp=false, $iddepartemment){ $dates = $this->setDate($comp); $q = Doctrine_Query::create() ->select('count(*) as nombre, typ.libelle as type, ') ->from('Declaration d') ->leftjoin('d.TypeAccident typ, d.Service s, s.Departement dep') ->where($this->where_date." AND ".$this->where_clones." AND dep.iddepartement = ?",array($dates[0],$dates[1],$iddepartemment)) ->groupBy('type') ->execute() ->getData(); if(count($q) > 0){ return $q; } }
Une déclaration est lié à un type d'accident.
La requête (getSqlQuerry) effectuée dans mysql me renvoie trois ligne de résultat pour un id de département que je force à 2 (par exemple)
Voici la requête sql un peu adaptée :
Elle me renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT COUNT( * ) AS nombre, t.libelle AS TYPE FROM Declaration d LEFT JOIN TypeAccident t ON d.idtypeaccident = t.idtypeaccident LEFT JOIN Service s ON d.idservice = s.idservice LEFT JOIN Departement d2 ON s.iddepartement = d2.iddepartement WHERE ( d.date_accident >= '2010-06-01 00:00:00' AND d.date_accident <= '2010-06-17 00:00:00' AND d.iddeclaration_org IS NULL AND d2.iddepartement =2 ) GROUP BY TYPE LIMIT 0 , 50
Dans ma vue quand j'essaye d'afficher les résultats, je ne parviens à avoir qu'une ligne par requête exécutée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 nombre type 1 choc / coup 2 chute / glissade 3 Manutention
Quelqu'un aurait une idée ?
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 <?php $resultat = $sf_request->getParameter("ids_dept") ?> <?php foreach ($resultat as $departement){ ?> <?php $r = $stat->getNombreAccidentsParTypeAccidentEtDepartement(false,$departement);?> <?php if (isset($r)) { ?> <h4><?php echo $departement ?></h4> <table class="Fixe"> <thead> <tr> <th>Type d'accident</th> <th>Nombre</th> <th>Proportion</th> </tr> </thead> <tbody> <?php foreach($r as $result){ ?> <th><?php echo($result->getTypeAccident());?></th> <?php } ?> </tbody> </table> <?php } ?> <?php } ?>
Pour d'autres requêtes, je n'ai pas le souci, elles se ressemble pourtant beaucoup :
par exemple :
et l'affichage des résultats :
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 public function getNombreAccidentsParTypeAccident($comp=false){ $dates = $this->setDate($comp); $q = Doctrine_Query::create() ->select('count(*) as nombre, d.matricule_rh, typ.libelle as typeAccident') ->from('Declaration d') ->leftjoin('d.TypeAccident typ') ->where($this->where_date." AND ".$this->where_clones,array($dates[0],$dates[1])) ->groupBy('typ.libelle') ->orderBy('typ.libelle') ->execute() ->getData(); return $q; }
Merci du coup de main, je galère vraiment à trouver d'où ça vient...
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 <table class="Fixe"> <?php $r = $stat->getNombreAccidentsParTypeAccident(true); ?> <thead> <tr> <th>Service</th> <th>Nombre d'Accidents</th> </tr> </thead> <tbody> <?php foreach($r as $result){ ?> <tr> <th><?php echo($result->getTypeAccident());?></th> <td><?php echo($result->getNombre());?></td> </tr> <?php } ?> </tbody> </table>
Partager