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 :

insérer NULL au lieu de zero dans un enregistrement [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut insérer NULL au lieu de zero dans un enregistrement
    Bonjour

    j'ai un champ de ma base comportant comme paramétrage :

    tinyint unsigned pouvant être null.

    J'ai un champ de formulaire qui peut rester vide et qui apparait comme "string" quand je fais un gettype.

    Avant de l'enregistrer dans me base je souterai changer le gettype du champ pour le passer en NULL, afin qu'il s'enregistre en tant que tel dans mes données. Pour cela, j'ai utilisé settype($var, "NULL")

    J'ai controlé ma variable au traitement de mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ( empty ($_POST['champ']) &&  $_POST['champ']) <> 0) //zéro étant une valeur possible
    {
    $var = $_POST['champ'];
    settype($var, "NULL")
    }
     
    gettype($var); //me donne bien null quand j'ai pas entré de donnée et string quand j'en ai rentrée une.
    Cependant, quand je veux enregistrée cette variable dans mes données, le champs sort toujours 0 au lieu de NULL

    Pourquoi? Qu'ai-je loupé? merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 144
    Points : 161
    Points
    161
    Par défaut
    Bah fais voir comment tu fais ton INSERT, sinon ça va être dur.

    (Au passage, le settype en NULL je vois pas vraiment l'intérêt là.)

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par asdf007 Voir le message
    Bah fais voir comment tu fais ton INSERT, sinon ça va être dur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req= ("INSERT INTO matable (champ1) VALUES ('$var')");
    mais bon, je ne crois pas que ça viennne de l'enregistrement car les autres éléments de mon enregistrement sont corrects.

    Citation Envoyé par asdf007 Voir le message
    (Au passage, le settype en NULL je vois pas vraiment l'intérêt là.)
    mais non plus, c'était juste pour montrer toutes les tentatives que j'avais fait

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 144
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par ledisciple Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req= ("INSERT INTO matable (champ1) VALUES ('$var')");
    mais bon, je ne crois pas que ça viennne de l'enregistrement car les autres éléments de mon enregistrement sont corrects.
    Justement si, ça vient de là : pour insérer NULL, il ne faut pas entourer de quotes. Si t'insères 'NULL', il prend ça pour la chaîne, et transforme automatiquement en 0 (valeur numérique par défaut).

  5. #5
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Je ne peux pas envoyer ça comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req= ("INSERT INTO matable (champ1,champ2) VALUES ($var1,$var2)");
    Il me renvoie une erreur en mettant $var1 et var2 dans la requête. Je n'arrive pas à faire partir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO matable (champ1,champ2) VALUES (NULL,NULL);

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/07/2014, 11h27
  2. Impossible d'insérer NULL dans colonne virtuelle
    Par guizaniseifislam dans le forum PL/SQL
    Réponses: 4
    Dernier message: 07/11/2013, 22h14
  3. [AC-2000] affichage vide au lieu de zero dans un champ numerique
    Par rolandbreche dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2012, 19h36
  4. enlever valeur null ou zero dans un graph
    Par dawaman dans le forum Excel
    Réponses: 9
    Dernier message: 22/09/2011, 09h21
  5. insérer les recordset d'un while dans une variable
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 31/03/2005, 10h01

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