Ca ne m'affiche aucun enregistrement et ca me semble normal quand on
voit la requete passée apres avoir corrigé ton code ("$criterion3-
>addOr(criterion4); $c->addAnd(criterion4) ;" ) :
SELECT [...]
FROM XXX_user, XXX_amis
WHERE XXX_amis.CONFIRMED=1
AND XXX_amis.LOGIN2='5'
AND XXX_user.ID<>5
Avec mon ancienne requete ca me donné ca :
SELECT [...]
FROM XXX_user, XXX_amis
WHERE XXX_amis.CONFIRMED=1
AND (XXX_amis.LOGIN1='5' OR XXX_amis.LOGIN2='5')
AND XXX_user.ID<>5
Et malheuresement ca m'affiche tous les enregistrements ...
dupliqués ...
On 2 juil, 17:01, nautilebleu <[EMAIL PROTECTED]> wrote:
> Ca te fait quoi comme erreur ?
>
> On 2 juil, 16:58, LaYa <[EMAIL PROTECTED]> wrote:
>
>
>
> > Non il le prend pas ... avec doSelectJoinAmis, doSelectJoinXXXAmis,
> > doSelectJoin, rien n'y fait ...
>
> > On 2 juil, 16:52, nautilebleu <[EMAIL PROTECTED]> wrote:> Ouups désolé,
> > pour les $.
>
> > > essaie de faire $this->amis = XXXUserPeer::doSelectJoinAmis($c);
>
> > > Nautile
>
> > > On 2 juil, 16:47, LaYa <[EMAIL PROTECTED]> wrote:
>
> > > > 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 -- 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
-~----------~----~----~----~------~----~------~--~---