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

PHP & Base de données Discussion :

Tester si une colonne de requête renvoie NULL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut Tester si une colonne de requête renvoie NULL
    Bonjour,
    Je pensais trouver ça dans la FAQ mais...

    Soit donc une requête SQL quelconque dont certaines colonnes peuvent afficher NULL, cas typique en cas de jointure externe.

    Comment tester en PHP si l'une des colonnes de la requête a renvoyé NULL ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Par défaut
    Salut,

    une petite précision, tu veux savoir si la colonne peut renvoyer NULL ou bien si la valeur de la colonne est NULL ?

    Si tu recherches le deuxième cas, la fonction is_null() ne fait-elle pas l'affaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(is_null($row['mon_champs'])) 
    {
     // traitement
    }

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Exemple pratique:
    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
     
    echo "<pre>";
    $c = mysql_connect('localhost', 'root', '');
     
    $req = "select null";
    if ($results = mysql_query($req))
    {
       var_dump($a = mysql_fetch_assoc($results));
       var_dump($b = array_shift($a));
       var_dump(is_null($b));
       var_dump(isset($b));
       var_dump(empty($b));
       var_dump($b == NULL);
    }
    echo "</pre>";
    Produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    array(1) {
      ["NULL"]=>
      NULL
    }
    NULL
    bool(true)
    bool(false)
    bool(true)
    bool(true)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 77
    Par défaut
    Attention.
    0 == null == false == array() == etc.

    Si la valeur peut retourner 0, il faut utiliser la comparaison stricte (===).

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Merci, je l'ai fait avec === NULL et ça fonctionne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [SP-2010] Ajouter une colonne : Webpart Requête de contenu
    Par sebfreu dans le forum SharePoint
    Réponses: 2
    Dernier message: 31/01/2012, 18h10
  2. Réponses: 6
    Dernier message: 28/07/2011, 14h21
  3. Tester si une colonne est une clef étrangère
    Par Mozofeuk dans le forum SQLite
    Réponses: 3
    Dernier message: 28/04/2011, 15h50
  4. [AC-2003] renommer une colonne de requête en fonction d'une zone de texte d'un formulaire
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/03/2010, 16h16
  5. INDEX sur une colonne qui peut être NULL
    Par dorian53 dans le forum Requêtes
    Réponses: 15
    Dernier message: 29/11/2007, 17h13

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