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 17/07/2011, 20h55   #1
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Par défaut Une requete jointure

Bonjours,

J'essaye de construire cette requette sous zend.
Code :
1
2
3
4
5
6
7
8
9
 
SELECT topic.tid, topic.title, topic.posts, topic.starter_id, topic.start_date, topic.starter_name, topic.views, topic.topic_rating_total, topic.topic_rating_hits, post.post
FROM ibf_topics AS topic
INNER JOIN ibf_posts AS post ON post.topic_id = topic.tid
AND topic.topic_firstpost = post.pid
WHERE topic.forum_id =39
AND topic.approved =1
ORDER BY topic.start_date DESC
LIMIT 0 , 5
Pour l'instant j'en suis la :
Code :
1
2
3
4
5
6
7
 
$select = $this->select()
				  ->from(array('topic'=>'ibf_topics'),
					    array('tid', 'title', 'posts', 'starter_id', 'start_date', 'starter_name', 'views', 'topic_rating_total', 'topic_rating_hits'))
			          ->join(array('post'=>'ibf_posts'),
					   array('post'));
$r = $this->fetchAll($select);
Quelqu'un de bienveillant pourrai m'aider a la finir ?

Merci
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h07   #2
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Bonjour,

tu trouveras ci-dessous peut-être un élément de réponse à ton problème:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
 
$select = $this->select()
 	       ->from(array('topic'=>'ibf_topics'),
		    array('tid', 'title', 'posts', 'starter_id', 'start_date', 'starter_name', 'views', 'topic_rating_total', 'topic_rating_hits'))
	       ->join(array('post'=>'ibf_posts'),
		   , 'post.topic_id = topic.tid and topic.topic_firstpost = post.pid', array('post'))
	       ->where('topic.forum_id =?', '39')
	       ->where('topic.approved =?'; '1')
	       ->order('topic.start_date DESC')
	       ->limit(0, 5);
Je ne suis pas sûr pour le "and" dans la clause join (ligne 7)!

Dans tous les cas réfère toi au manuel zend via le lien ci-dessous:
http://framework.zend.com/manual/fr/zend.db.select.html
Tu trouveras des exemples sur les différentes clauses que tu utilises (join, where, limit...)
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 19h20   #3
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Je me suis deja referer, et mon debut du code vien de la.

La ou je bloqué vraiement c'est pour les "AND", d'apres ce que je constate on met toujours where ?
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 23h05   #4
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Effectivement quand tu as des and tu mets where(), mais
Attention si tu as des or et des where cela devient bien plus compliquer au niveau de la requete.

PS: n oubliez pas les quotesIdentifier autant faire dans le propre sans se soucier du SGBD
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 07h28   #5
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Citation:
PS: n oubliez pas les quotesIdentifier autant faire dans le propre sans se soucier du SGBD
C'est quoi ?
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 07h51   #6
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
SGBG : systeme de gestion de base de données
Par exemple MySQL, PostgreSQL etc.
Les quotes d un SGBD à l autre varie et quoteIdentifier que tu peux appeler sur une instance de ton adapteur de BDD permet de gérer ces quotes en fonction du SGBD
5h4rk 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 13h02.


 
 
 
 
Partenaires

Hébergement Web