Salut,

J'ai un problème pour l'affichage des résultats d'une requête avec doctrine

Voici ma requête :

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ée à un service, lui même lié à un département.
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 :

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
Elle me renvoie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
nombre 	type
1 	choc / coup
2 	chute / glissade
3 	Manutention
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
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 } ?>
Quelqu'un aurait une idée ?

Pour d'autres requêtes, je n'ai pas le souci, elles se ressemble pourtant beaucoup :

par exemple :

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;
 
 		}
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
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>
Merci du coup de main, je galère vraiment à trouver d'où ça vient...