Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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 :
$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 :
$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)
Hors ligne
il faut mettre autant de close ->join a ton $select que necessaire. Tu utilises la meme syntaxe que pour le premier
$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
Ok merci,
J'avais déjà essayer mais j'avais cafouiller dans les , et les ; mais la c'est bon.
Ca marche impec.
Hors ligne
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
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
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