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 :

Sélectionné selon un champs NULL avec PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant - Développeur Web/Logiciel
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant - Développeur Web/Logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Points : 80
    Points
    80
    Par défaut Sélectionné selon un champs NULL avec PDO
    Bonjour,

    Voilà maintenant une bonne heure que je cherche comment sélectionné des données dans ma base de données en ayant comme condition que l'un des champs soit "NULL".
    J'ai réussi à exécuter la commande souhaitée via PhpMyAdmin, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * 
    FROM  `w_message` 
    WHERE  `id_parentMessage` IS NULL
    J'aimerais reproduire cette commande avec la pdo.

    Voici la requête que j'envoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$req_getMessage = $connect -> prepare('SELECT * FROM w_message WHERE id_parentMessage = :id_parentMessage ORDER BY date DESC');
    J'ai essayé plusieurs solutions telles que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$req_getMessage -> bindValue(':id_parentMessage', NULL, PDO::NULL_NATURAL);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$req_getMessage -> bindValue(':id_parentMessage', NULL, PDO::PARAM_NULL);
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$req_getMessage -> execute(array(":id_parentMessage" => NULL));
    Mais sans résultat à chaque fois.

    Auriez vous une idée ?
    Merci d'avance!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Quelle est l'utilité d'une requête préparée pour faire ça ?
    Tu as peur que NULL soit une valeur malicieuse ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Bonjour,

    Si ça doit être null, et que ça sera toujours null,

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_getMessage = $connect -> query('SELECT * FROM w_message WHERE id_parentMessage is null ORDER BY date DESC');

    Tu n'as pas à t'embêter et à chercher compliqué pour le coup

    edit : me suis fait griller ^^'
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant - Développeur Web/Logiciel
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant - Développeur Web/Logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Points : 80
    Points
    80
    Par défaut
    Pas du tout !

    Dans ce cas, j'ai simplifié ma requête mais en réalité je récupère des données selon d'autres champs en plus du champs "NULL". C'est la raison pour laquelle, même pour mes tests j'ai gardé la structure préparée.

  5. #5
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Du coup, un IF . Si tel ou tel champs tu prépares ça, sinon tu prépares avec "is null" . Une portion de code un peu plus élargie pourrait être pratique pour t'aider .

    Edit : ça se trouve j'ai mal compris mais tu peux garder "prepare" pour préparer ta requête selon les champs mais si "id_parent" doit toujours être null, ça ne change rien; Tu as juste à mettre "is null"
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant - Développeur Web/Logiciel
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant - Développeur Web/Logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Points : 80
    Points
    80
    Par défaut
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_getMessage = $connect -> query('SELECT * FROM w_message WHERE id_parentMessage is null ORDER BY date DESC');

    J'ai testé et cela marche ! Merci bien!

    J'avais testé cela au début et je n'avais pas eu de résultat. J'avoue trouver cela assez étrange

    Merci à vous pour votre aide!

    Sujet résolu donc.

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

Discussions similaires

  1. [PDO] Affichage champ BDD avec PDO
    Par Disast3r dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/07/2014, 18h56
  2. Perte format avec champ null
    Par Lanig22 dans le forum Access
    Réponses: 4
    Dernier message: 07/02/2007, 14h58
  3. Requete avec des champs null
    Par passie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/06/2006, 15h11
  4. Réponses: 1
    Dernier message: 08/02/2006, 17h17
  5. Pb UPDATE champ nullable avec la valeur Null
    Par zev dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 01/02/2005, 14h04

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