Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 21/05/2008, 18h00   #1
Nouveau Membre du Club
 
Inscription : mai 2008
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 47
Points : 33
Points : 33
Par défaut méthode de sous-requête

Bonjour,


alors voila j'ai une petite question à soumettre,

j'ai une table contact, reliée à deux autres tables : entreprise et action.

en gros action contient contact_id et contact contient ets_id.
j'aimerais récupéré grâce à propel l'entreprise du contact ayant fait une action ...

j'ai vu l'utilisation de sfPropelCriteriaImpersonator mais j'aimerai limiter au maximum l'utilisation de plugins et donc j'aimerai savoir si y'a un moyen de le récupérer simplement!

Merci à vous!
T1T1b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 20h43   #2
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
Bonjour,

Est-ce que tu peux éclaircir un peu plus les relations entre tes objets ?
Et quel object tu détiens au départ?
Parce que j'ai du mal avec 'l'entreprise du contact ayant fait une action ...
' .
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2008, 08h10   #3
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Si j'ai bien compris le schéma de ta base pourquoi une sous requette et non pas une simple jointure ?

en gros si l'dentifiant de l'action est déja connue ( récuperé du post ou du get ou de ....) Normalement tu doit aboutir à une requette de genre :

Code :
1
2
3
4
5
 
SELECT * FROM entreprise E,contact T,action A
WHERE A.contact_id = C.contact_id
AND C.ets_id = E.ets_id 
AND C.ACTION_ID = $id_action
Donc tu peut faire simplement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//instanciation de la classe Criteria
$c = new Criteria() ;
 
//Ajouter un where
$c->add(ActionPeer::ACTION_ID, $id_action) ;
 
//Ajouter une jointure naturelle entre la table entreprise et contact
$c->addJoin(EntreprisePeer::ETS_ID,ContactPeer::ETS_ID,Criteria::INNER_JOIN);
 
//Ajouter une jointure naturelle entre la table action et contact
$c->addJoin(ActionPeer::CONTACT_ID,ContactPeer::CONTACT_ID,Criteria::INNER_JOIN);
 
//récuperation de l'entreprise 
$entreprise = EntreprisePeer::doSelectOne($c) ;
Avec $id_action => la valeur du contact récupéré
ActionPeer::ACTION_ID => l'attribut statique généré par propel

voila a+
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h08.


 
 
 
 
Partenaires

Hébergement Web