Ca ne fonctionne pas du tout ... il manquait des $ mais c'est pas le
probleme ... Je pense que ca viens du fait que ma requete fasse une
jointure entre XXXAmis et XXXUser ... et je sais pas comment mettre un
addJoin la dedans ...

On 2 juil, 16:35, nautilebleu <[EMAIL PROTECTED]> wrote:
> $c = new Criteria();
> $c->add(XXXAmisPeer::CONFIRMED, '1');
> $criterion1 = $c->getNewCriterion(XXXAmisPeer::LOGIN1, $id_user) ;
> $criterion2 = $c->getNewCriterion (XXXAmisPeer::LOGIN2, $id_user));
> $criterion1->addOr(criterion2);
> $c->addAnd(criterion2) ;
>
> $criterion3 = $c->getNewCriterion(XXXUserPeer::ID,
> XXXAmisPeer::LOGIN1);
> $criterion4 = $c->getNewCriterion (XXXUserPeer::ID,
> XXXAmisPeer::LOGIN2));
> $criterio3->addOr(criterion4);
> $c->addAnd(criterion1) ;
>
> $c->add(XXXUserPeer::ID, $id_user, Criteria::NOT_EQUAL);
>
> $this->amis = XXXUserPeer::doSelect($c);
>
> On 2 juil, 16:15, LaYa <[EMAIL PROTECTED]> wrote:
>
>
>
> > Merci de me filer un coup de main mais j'suis novice en symfony.
> > Concretement ca aurait quelle tete ? Parce que j'arrive pas tellement
> > a comprendre là ...
>
> > On 2 juil, 16:09, nautilebleu <[EMAIL PROTECTED]> wrote:> Il faut faut 
> > faire 4 criterions, cumuler 1 et 2 ensembles, cumuler 3
> > > et 4 ensembles,
> > > puis ajouter les deux cumuler au criteria
>
> > > Nautile
>
> > > On 2 juil, 15:57, LaYa <[EMAIL PROTECTED]> wrote:
>
> > > > Bonjour à tous,
>
> > > > Donc voila comme l'indique le titre j'ai un petit problème avec une
> > > > requete SQL récalcitrante :
>
> > > > J'ai 2 tables xxx_user et xxx_amis qui contiennent respectivement les
> > > > informations des utilisateurs (login, nom, prenom, ...) et les
> > > > 'amitiés' entre les differents utilisateurs (login1=>id utilisateur n
> > > > °1, login2=>id utilisateur n°2, confirmed=>1 si la personne qui a été
> > > > ajouté a confirmé cet ajout).
>
> > > > J'essai donc d'afficher les differents 'amis' d'un utilisateur donné.
>
> > > > En SQL pas de probleme elle fonctionne ( j'ai pris un id utilisateur
> > > > pour l'exemple '5' ):
>
> > > > SELECT us.login FROM xxx_amis ami, xxx_user us
> > > > WHERE ami.confirmed = '1'
> > > > AND (ami.login1 = '5' OR ami.login2 = '5')
> > > > AND (us.id = login1 OR us.id = login2)
> > > > AND us.id != '5'
>
> > > > avec symfony c'est une autre paire de manches :
>
> > > >    public function executeXXXAmis()
> > > >    {
> > > >         $id_user = $this->getUser()->getAttribute('id');
>
> > > >         $c = new Criteria();
> > > >         $c->add(XXXAmisPeer::CONFIRMED, '1');
> > > >         $criterion1 = $c->getNewCriterion(XXXAmisPeer::LOGIN1, 
> > > > $id_user)->addOr($c->getNewCriterion (XXXAmisPeer::LOGIN2, $id_user));
>
> > > >         $c->add($criterion1);
> > > >         $criterion2 = $c->getNewCriterion(XXXUserPeer::ID,
> > > > XXXAmisPeer::LOGIN1)->addOr($c->getNewCriterion (XXXUserPeer::ID,
> > > > XXXAmisPeer::LOGIN2));
> > > >         $c->addAnd($criterion2);
> > > >         $c->add(XXXUserPeer::ID, $id_user, Criteria::NOT_EQUAL);
>
> > > >         $this->amis = XXXUserPeer::doSelect($c);
> > > >    }
>
> > > > Seul probleme la deuxieme partie de la requete n'est pas prise en
> > > > compte ... le $criterion2 ... et je n'arrive pas a comprendre
> > > > pourquoi ... quelqu'un aurait une idée ?
>
> > > > Merci d'avance !- Masquer le texte des messages précédents -
>
> > > - Afficher le texte des messages précédents -- Masquer le texte des 
> > > messages précédents -
>
> - Afficher le texte des messages précédents -


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à