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 :

Doctrine: Comment tester les champs vides ?


Sujet :

ORM PHP

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut Doctrine: Comment tester les champs vides ?
    Bonjour, je veux uniquement récupérer les enregistrements sur lesquels le champ "image" est vide. Et j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $q = Doctrine::getTable('remede')
          ->createQuery('r')
          ->where('r.image = ?', '')
          ->limit(12)
          ->orderBy('r.id DESC');
    Mais ça ne marche pas. Je l'ai beau tourné dans tous les sens, mais je ne sais pas comment corriger ça. N'y aurait-il pas des clauses plus indiquées pour tester si un champ est vide ? Dans la documentation de Doctrine j'ai trouvé IS [NOT] EMPTY mais aucun exemple de sa syntaxe.

  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
    Ce ne serait pas dans le genre ->where('r.image is empty') ? (non testé)

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    peut étre :
    tu déclare un variable inicialisé sur le vide et tu le met sur la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $vide='';
    $q = Doctrine::getTable('remede')
          ->createQuery('r')
          ->where('r.image = ?', $vide)
          ->limit(12)
          ->orderBy('r.id DESC');

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut
    Ca na pas marché. Mais j'ai fini par trouvé une solution avec IS [NOT] NULL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $q = Doctrine::getTable('remede')
    		->createQuery('r')
    		->where('r.slug != ?', $slug)
    		->andWhere('r.image IS NOT NULL')
    		->limit(12)
    		->orderBy('r.id DESC');
    Ca a marché. merci pour tout.

  5. #5
    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
    Je n'était pas si loin

    @benhsaien tu n'es pas en SQL mais en DQL. Comparer à une variable vide (ou null) va générer une comparaison sur une chaine de caractère vide. Et une chaine de caractère vide n'est pas nécessairement la même chose d'un champ null. Lors de la génération par le DQL de l'équivalent SQL, je n'ai aucune idée de ce que cela pourrait donner... Mais je doute que l'on se retrouve avec un "is not null".

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut
    @benhsaien, avant de poster j'ai essayé ta solution. c'est une impasse. Ca revient exactement à ma première requête

  7. #7
    Invité de passage
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut
    as tu essayé sans paramètre de requête ?
    Juste comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $q = Doctrine::getTable('remede')
          ->createQuery('r')
          ->where('r.image = "" ')
          ->limit(12)
          ->orderBy('r.id DESC');

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/01/2013, 14h53
  2. Comment supprimer les champs vides ?
    Par Christian_Bale dans le forum Cognos
    Réponses: 3
    Dernier message: 03/05/2012, 09h58
  3. DataTable : comment supprimer les champs vides ?
    Par Leelith dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/02/2010, 23h14
  4. Comment tester les champs facilement ?
    Par innova dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/11/2006, 15h29
  5. [DREAMWEAVER 8] Comment tester les champs d'un formulaire
    Par steeves5 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/02/2006, 21h43

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