|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Bonjour
En fait j'essaye de faire une jointure relativement via Zend Db, mais rien n'y fait pas moyen de faire passé la requête avec les différente façon décrite dans la doc de Zend Db ... Code :
Même en essayant le : Code :
$this->view->news = $db->fetchAll( 'SELECT * FROM `ld_news` AS n JOIN `ld_users` AS u ON n.news_author = u.user_id' ); Merci. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
J'ai beau echotter ma requête, et essayer de corriger la "syntaxe" PDO, pas moyen d'en faire façon, ça ne donne jamais ce que je veux.
Il me faudrai une syntaxe correct pour la requête préciser ci dessus, en effet je ne trouve pas d'exemple correspondant a ce que je recherche, vu que je veux récupéré toutes les colonnes ... |
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Regarde le deuxième exemple ici : http://julien-pauli.developpez.com/t...=Zend_Db#LIX-F
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Bah c'est exactement cette exemple que je tourne dans tous les sens.
Mon principal problème, c'est que je fais un SELECT * et pas 2/3 champs en particulier. |
|
|
00
|
|
|
#6 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Oui, c'est exactement ce que fait cet exemple. Où est le problème ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Le 1er soucis, c'est déjà quand je fait ceci :
Code :
$db->fetchAll( 'SELECT * FROM `ld_news` AS n JOIN `ld_users` AS u ON n.news_author = u.user_id' ); Alors que la requête passe très bien en console .... Ensuite pour le montage avec le system de ZF pour construire les requêtes, je monte mon truc comme l'exemple : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Je te conseille fortement d'utiliser l'objet SELECT, comme Yogui te l'a conseillé.
Ensuite, vérifies les noms de tes tables et champs. Puis personnellement j'ai eu quelques difficultés avec JOIN, j'utilise maintenant JOIN LEFT, qui me suffit dans mon cas. Bon courage. |
|
|
00
|
|
|
#9 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Pourquoi est-ce que tu mets la même table à la fois dans from et dans join ?
Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
En effet c'est ld_news ...
Donc je reprend Code :
Marche pas ... Code :
SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty Alors la ... je suis totalement paumé ... c'est dingue que ça soit si complex de faire un pauv' join ....
|
||||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Alors quelques conseilles :
Montre nous la partie du code où tu exécutes la requête. L'erreur semble dire que tu n'envoies pas la requête à exécuter... |
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Bon, tu es passé de $db->select à $table->select, l'erreur a t-elle changé ?
Avec code, qu'obtiens tu comme erreur ? |
|
|
00
|
|
|
#14 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Non en fait j'ai changer $table pour $db, histoire que ce soir plus clair.
SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty J'imagine qu'il est utile de préciser le shéma de mes deux table : Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Pour faire ta requête utilise l'adapteur spécifique à ta base de données. Je ne suis pas sur que l'objet Table peut être utilisé pour les requêtes.
|
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Bah si :/
Code :
|
||
|
|
00
|
|
|
#17 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Est-ce que tu as essayé cette syntaxe ?
http://framework.zend.com/manual/en/....building.join Sinon, il me semble que tu peux faire echo de ton $select.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
C'etait la 1er que j'ai tester, pas moyen de faire quelque chose avec.
Pour ce qui est du echo $select, oui c'est possible, mais vu qu'il ne sais pas la construire, ca passe pas ... |
|
|
00
|
|
|
#19 | ||||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Je viens de voir un détail qui m'étonne.
De quelle classe hérite NewsModel ? Normalement, l'idée est d'utiliser $db en tant qu'Zend_Db_Adapter_* et non en tant que Zend_Db_Table. Tu ne peux pas interchanger $db et $table, ce n'est pas logique. $db est un objet Zend_Db_Adapter_* $table est un objet Zend_Db_Table Tu peux obtenir $db à partir de $table->getAdapter(). Un $select se fait généralement à partir de $db ou $table mais pas dans les mêmes conditions : Code :
Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||||
|
|
00
|
|
|
#20 | ||||
|
Invité de passage
![]() Inscription : avril 2008 Messages : 15 ![]() |
Très juste, ma classe NewsModel hérite de Zend_Db_Table_Abstract
Code :
Enfin c'est utilisable, mais c'est pas ce que je veux :p La grande question est de savoir pourquoi mes autre select basique passe uniquement avec $table dans cette meme class. AUssi, je fait de passé par getAdapter() c'est un comportement normal ou c'est mon organisation qui foire ? Il est utile de préciser comment je traite au niveau du controller Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com