Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 23h49   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 56
Points : 13
Points : 13
Par défaut GROUP_CONCAT ne marche pas

Bonsoir,
Je débute avec le ZF et donc le Zend DB.
Je veux faire la requête suivante :
Code :
1
2
3
4
5
SELECT `c`.id, GROUP_CONCAT(e.eid SEPARATOR ',') AS eids 
 FROM `tableC` AS `c`
 LEFT JOIN `tableE` AS `e` ON c.id = e.id 
WHERE (c.id = 1) 
GROUP BY `c`.`id`

Et je tourne en rond. Je capte pas pourquoi ça ne fonctionne pas avec le code suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
$query = $this->getDbTable()->select(false);
$query->from(array('c' => 'tableC')); 
    	$expression = new Zend_Db_Expr("GROUP_CONCAT(e.eid SEPARATOR ',')");
    	/*Cette ligne plante*/
    	$query->from(array(), array('eids' => $expression));
    	/*Dans la suivante j'ai aussi tenté de remplacer null par mon array('eids' => $expression) au dessu mais non*/
    	$query->joinLeft(array('e' => 'tableE'), 'c.id = e.id',NULL);
	$query->where('c.id = ?',$id);
    	$query->group('c.id');
	$result = $this->getDbTable()->fetchAll($query);

Je vois pas ce qui cloche.
Si vous avez une petite idée. Merci
drzoidberg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 01h53   #2
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 56
Points : 13
Points : 13
Bon j'ai halluciné. Voilà un truc qui marche.
Ca venait de moi évidemment

Code :
1
2
3
4
5
6
7
8
 
$query = $this->getDbTable()->select();
$query->from(array('c' => 'tableC')); 
    	$query->from(array(), array('c.id','eids' => new Zend_Db_Expr("GROUP_CONCAT(e.eid SEPARATOR ',')")));
    	$query->joinLeft(array('e' => 'tableE'), 'c.id = e.id',NULL);
	$query->where('c.id = ?',$id);
    	$query->group('c.id');
	$result = $this->getDbTable()->fetchAll($query);
drzoidberg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 08h58   #3
Membre Expert
 
Avatar de zeyr2mejetrem
 
Homme
Ingénieur développement logiciels
Inscription : novembre 2010
Messages : 401
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2010
Messages : 401
Points : 1 641
Points : 1 641
Merci pour ton post car j'ai appris un truc
zeyr2mejetrem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h07.


 
 
 
 
Partenaires

Hébergement Web