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