Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-06-2009 11:58:07

yoga20
Membre
Date d'inscription: 23-04-2009
Messages: 33

[Résolu][Zend_Db_table][Zend 1.8.0] jointure

Bonjour ,
mon problème est le suivant je voudrais faire la requête  suivante :
 
SELECt programme.modeComtageNuisiblePourcentage from programme,visitedeterrain,comptagedenuisible
WHERE programme.idprogramme=visitedeterrain.idprogramme
AND visitedeterrain.idVisiteDeTerrain= comptagedenuisible.idVisiteDeTerrain
AND idcomptageDeNuisible = 1
 

mon code est donc le suivant :


$Tprogramme=new Programme();
        $select=$Tprogramme->select();
        $select->setIntegrityCheck(false);
        $select->where('idcomptageDeNuisible = ?',1)
->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme')
->join('comptagedenuisible','comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain');
 


mais le code généré est le suivant


SELECT `visitedeterrain`.*, `comptagedenuisible`.* FROM `visitedeterrain` INNER JOIN `comptagedenuisible` ON comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain WHERE (comptagedenuisible = 1)


en fait le 2 eme join n'est pas pris en compte.
Merci

Dernière modification par yoga20 (24-06-2009 15:29:54)

Hors ligne

 

#2 24-06-2009 13:12:17

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu][Zend_Db_table][Zend 1.8.0] jointure

Hello,

Le from() n'est pas automatique :

Code:

$Tprogramme=new Programme();
$select=$Tprogramme->select();
$select->setIntegrityCheck(false);
$select->from($Tprogramme); // ou $select->from('programme');
$select->where('idcomptageDeNuisible = ?',1)
       ->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme')
       ->join('comptagedenuisible','comptagedenuisible.idVisiteDeTerrain=visitedeterrain.idVisiteDeTerrain');

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 24-06-2009 14:05:01

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Db_table][Zend 1.8.0] jointure

Salut,

Petite précision. Si tu ne veux pas que tous les champs de tes tables jointes soient récupérés (*), tu peux passer un tableau avec les champs voulu, ou null pour n'en récupérer aucun.

Code:

->from($Tprogramme, array('champ1', 'champ2'))

Code:

->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme') // Tous les champs (visitedeterrain.*)
->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme', null) // Aucun champ
->join('visitedeterrain','visitedeterrain.idprogramme=programme.idprogramme', array('alias1' => 'champ1', 'alias2' => 'champ2')) // champ1 as alias1, champ2 as alias2

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 24-06-2009 15:30:39

yoga20
Membre
Date d'inscription: 23-04-2009
Messages: 33

Re: [Résolu][Zend_Db_table][Zend 1.8.0] jointure

Merci pour vos réponses aussi rapides . Cela fonctionne avec l'ajout du ->from()

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages