Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-08-2007 15:30:41

g_barthe
Nouveau membre
Date d'inscription: 22-08-2007
Messages: 6

[résolu] Requete avec jointure multiple

Bonjour,
Je découvre Zend et je voulais revoir mon application en utilisant ce framework qui me parait effectivement plus simple que ce que j'avais fait en évitant de réinventer la roue et surtout de mainère plus structurée, plus sécurisé...

Mais je butte la dessus et je ne toruve pas de reponse.

J'ai actuellement la requete suivante :

Code:

$liste_bd = "SELECT A.id_bd, A.titre_bd, A.T_series_bd_id_series_bd, A.T_possesseurs_id_possesseurs, A.numero_bd, B.id_possesseurs, B.nom_possesseur, C.id_series_bd, C.series_bd
                         FROM " . BD_TABLE . " AS A
                                   INNER JOIN " . POSSESSEURS . " AS B
                                                 ON A.T_possesseurs_id_possesseurs = B.id_possesseurs
                                    INNER JOIN " . SERIES_BD . " AS C
                                                ON A.T_series_bd_id_series_bd = C.id_series_bd ORDER BY C.series_bd ASC, A.numero_bd";

et je cherche à l'effectuer avec Zend. En mon double INNER JOIN me pose pb. Le ORDER BY pas de soucis. Je vous met ce que j'ai reussis à faire pour l'exemple :

Code:

$select = $db->select()
   ->from(array('A' => 'gc_bd'),
      array('id_bd', 'titre_bd', 'T_series_bd_id_series_bd', 'T_possesseurs_id_possesseurs', 'numero_bd'))
   ->join(array('B' => 'gc_possesseur'),
      'A.T_possesseurs_id_possesseurs = B.id_possesseurs')
     ->order(array('B.nom_possesseur ASC', 'A.numero_bd'));

Quelqu'un d'entre vous pourrait-il m'expliquer comment je peux réaliser ca. La docs de Zend en alglais ne m'a pas permis de le faire.

Merci à vous.

Dernière modification par g_barthe (22-08-2007 16:42:01)


Mon forum perso sur le génie climatique http://le-genie-climatique.positifforum.com/
Le forum des travaux manuels : http://pausebroderie.fr/

Hors ligne

 

#2 22-08-2007 15:53:38

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [résolu] Requete avec jointure multiple

il faut mettre autant de close ->join a ton $select que necessaire. Tu utilises la meme syntaxe que pour le premier

Code:

$select = $db->select()
   ->from(array('A' => 'gc_bd'), array('id_bd', 'titre_bd', 'T_series_bd_id_series_bd', 'T_possesseurs_id_possesseurs', 'numero_bd'))
   ->join(array('B' => 'gc_possesseur'), 'A.T_possesseurs_id_possesseurs = B.id_possesseurs')
   ->join(array('C' => 'gc_series_bd'), 'A.T_series_bdçid_series_bd = C.id_series_bd ')
     ->order(array('B.nom_possesseur ASC', 'A.numero_bd'));

pour débugger, tu peux faire un echo $select a la fin ce qui te permet de visualiser la requete.

Hors ligne

 

#3 22-08-2007 16:41:39

g_barthe
Nouveau membre
Date d'inscription: 22-08-2007
Messages: 6

Re: [résolu] Requete avec jointure multiple

Ok merci,

J'avais déjà essayer mais j'avais cafouiller dans les , et les ; mais la c'est bon.

Ca marche impec.


Mon forum perso sur le génie climatique http://le-genie-climatique.positifforum.com/
Le forum des travaux manuels : http://pausebroderie.fr/

Hors ligne

 

#4 25-06-2008 16:42:14

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [résolu] Requete avec jointure multiple

Bon j'ai trouvé tout seul : j'avais oublié de faire select = $select->setIntegrityCheck(false) ;
Du coup les jointures n'étaient pas autorisées. L'exception levée est seulement.. pas du tout explicite -_-'... voire.. à côté de la plaque !

Bref c'est réglé !!

Hors ligne

 

#5 16-06-2009 10:07:33

ramos
Membre
Date d'inscription: 19-03-2009
Messages: 14

Re: [résolu] Requete avec jointure multiple

Bonjour,

j'ai posté un nouveau sujet lié à ce message (je voulais répondre mais un nouveau sujet m'a semblé mieux) :
http://www.z-f.fr/forum/viewtopic.php?id=3401

Hors ligne

 

#6 06-10-2010 15:49:37

sevy
Membre
Date d'inscription: 17-09-2010
Messages: 37

Re: [résolu] Requete avec jointure multiple

voilà

Warning: preg_match() expects parameter 2 to be string, object given in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Select.php on line 788

Warning: strrpos() expects parameter 1 to be string, object given in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Select.php on line 902

Warning: array_key_exists() [function.array-key-exists]: The first argument should be either a string or an integer in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Select.php on line 905

Warning: array_key_exists() [function.array-key-exists]: The first argument should be either a string or an integer in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Select.php on line 803

Warning: Illegal offset type in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Select.php on line 827

Catchable fatal error: Object of class Model_client could not be converted to string in C:\Documents and Settings\Yves\Zend\workspaces\DefaultWorkspace7\GestComGelodia\library\Zend\Db\Adapter\Abstract.php on line 1020

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