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

ORM PHP Discussion :

Imbrication conditions AND et OR [Doctrine]


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut Imbrication conditions AND et OR
    Bonsoir, je voudrais imbriquer des conditions avec doctrine du style

    WHERE ... AND (... OR ...)

    Cela est-il possible . Car quand je fais des OR, il me les mets à la suite ce qui n'a plus de sens.

    Merci d'avance.

    Cordialement.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Oui et non...

    C'est vrai qu'à ce niveau, il est dommage de ne trouver les notions que l'on avait dans propel

    Reste qu'il y a une solution.

    Tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $q = Doctrine_Query::create()->
              from('user u')->
              where(
                        'u.name = :nom AND (u.date > :date OR u.active = :active )',
                        array('nom' => 'Durant', 'date' => '2010-31-12' , 'active' => true )
              )
    Qui donnera un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select *
    from user as u
    where u.name = 'Durant' and (date > '2010-31-12' or u.active = true )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Effectivement ça marche merci beaucoup !

    Cependant, je n'ai par réussi à faire fonctionner les alias :nom. J'ai du mettre plusieurs "?". Est-il possible d'utiliser plusieurs fois le même alias dans la même requête ?

    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est le principe des alias.

    Par contre, je me rend compte que j'ai fais une erreur en écrivant à la volée le code.

    Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $q = Doctrine_Query::create()->
              from('user u')->
              where(
                        'u.name = :nom AND (u.date > :date OR u.active = :active )',
                        array(':nom' => 'Durant', ':date' => '2010-31-12' , ':active' => true )
              )

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Effectivement ça marche parfaitement.

    Merci beaucoup une fois de plus.

    Cordialement.

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

Discussions similaires

  1. [Doctrine] Perf: WHERE IN () ou WHERE condition and Where condition
    Par Laurent91300 dans le forum ORM
    Réponses: 5
    Dernier message: 31/01/2014, 22h54
  2. Imbrication d'INNER JOIN et de conditions AND
    Par miron dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/05/2012, 16h06
  3. Double condition And / or
    Par ridokou dans le forum Développement
    Réponses: 1
    Dernier message: 23/12/2010, 11h16
  4. Combien de condition "And" peut on mettre dans une ligne de code
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/04/2010, 15h39
  5. [SQL] Ma requête renvoie tous les tuples et ne respecte pas la condition AND
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/02/2007, 13h33

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