IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

criterion and et or [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut criterion and et or
    Bonjour à tous,

    je voudrais faire une requete du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select *
    from Matable
    where ( Monchamp1 = 1 AND MonChamp2 = 2)
    OR ( Monchamp3 = 1 AND MonChamp4 = 2)
    OR ( Monchamp5 = 1 AND MonChamp6 = 2)
    j'ai donc ecrit dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $c = new Criteria();
    $cton1 = $c->getNewCriterion(MatablePeer :: Monchamp1, '1'));
    $cton11 = $c->getNewCriterion(MatablePeer :: MonChamp2 , '2');
    $cton2 = $c->getNewCriterion(MatablePeer :: MonChamp3 , '1');
    $cton22 = $c->getNewCriterion(MatablePeer :: MonChamp4 , '2');
    $cton3 = $c->getNewCriterion(MatablePeer :: MonChamp5 , '1');
    $cton33 = $c->getNewCriterion(MatablePeer :: MonChamp6 , '2');	
    $cton1->addAnd($cton11);
    $cton2->addAnd($cton22);
    $cton3->addAnd($cton33);
     
    $cton1->addOr($cton2);
    $cton1->addOr($cton3);
     
    $c->add($cton1);
    Mon resultat est incorrect.
    Je suis allé voir la doc de cette adresse :
    http://propel.phpdb.org/docs/user_guide/index.html

    mais je ne trouve ce que je veux.
    J'espère que quelqu'un pourra m'eclairer

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Par défaut
    Déjà il y a des OR dans ton SQL, mais pas dans tes criterias

    Je ferais un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $c = new Criteria();
     
    $cton1 = $c->getNewCriterion(MatablePeer :: Monchamp1, '1'));
    $cton11 = $c->getNewCriterion(MatablePeer :: MonChamp2 , '2');
    $cton1->addAnd($cton11);
     
    $cton2 = $c->getNewCriterion(MatablePeer :: MonChamp3 , '1');
    $cton22 = $c->getNewCriterion(MatablePeer :: MonChamp4 , '2');
    $cton2->addAnd($cton22);
     
    $cton3 = $c->getNewCriterion(MatablePeer :: MonChamp5 , '1');
    $cton33 = $c->getNewCriterion(MatablePeer :: MonChamp6 , '2');	
    $cton3->addAnd($cton33);
     
    $cton1->addOr($cton2);
    $cton2->addOr($cton3);
    $c->add($cton1);
    À vérifier bien sûr parceque je n'ai pas testé. Mais tu peux aussi t'aider de ce truc très pratique : Propel Criteria Builder

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Merci pour ta réponse :

    en fait j'ai trouvé comment résoudre mon problème.
    j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $cton1 = $c->getNewCriterion(MaTable :: MonChamp1, '1');
    $cton1->addAnd($c->getNewCriterion(MaTable :: MonChamp2, '2'));
    $cton2 = $c->getNewCriterion(MaTable :: MonChamp3, '1');
    $cton2->addAnd($c->getNewCriterion(MaTable :: MonChamp4, '2'));
    $cton3 = $c->getNewCriterion(MaTable :: MonChamp5, '1');
    $cton3->addAnd($c->getNewCriterion(MaTable :: MonChamp6, '2'));
    $cton1->addOr($cton2);
    $cton1->addOr($cton3);
    $c->add($cton1);
    Par contre merci pour le super tuyau pour générer mes requêtes propel.
    c génial ;-)))

    Une question encore si je peux me permettre : Comment je fais pour marquer mon sujet comme résolu ??????

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 10
    Par défaut
    Heu !!!

    ça y est j'ai trouvé
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. SQL :select et AND
    Par Shabata dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/05/2003, 13h39
  5. Fip, modbus and co...
    Par xave dans le forum Développement
    Réponses: 2
    Dernier message: 24/05/2002, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo