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 !


--~--~---------~--~----~------------~-------~--~----~
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 à