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 :

Transformer des champs vides en NULL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Transformer des champs vides en NULL
    Bonjour,
    J'essaye d'insérer des valeurs dans une table "Station" ces valeurs peuvent être renseignées ou vides.
    Si elles sont vides, il faut que je les transforme en NULL pour que MYSQL les accepte (ce sont des champs "DECIMAL")...
    Or j'ai toujours le même type d'erreur:
    Incorrect decimal value: '' for column 'Longitude_degre' at row 1

    Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if empty($londeg) $londeg=NULL;
     $ins_donnees = "INSERT INTO Station ( Code_station,  Lieu_dit, Code_commune,  Sens_par_rapport_a_greenwich, Longitude_degre, Longitude_minute, Longitude_seconde, Latitude_degre, Latitude_minute, Latitude_seconde, altitude, Commentaires, Code_biotope_odonate, Code_nature_du_site, Code_riviere, Code_biotope_corrine, Code_biotope_corine_1, Code_biotope_corine_2, Code_biotope_corine_3) "
          . "VALUES ('$code_station','$lieu_dit', '$commune','$sens','$londeg', '$lonmin', '$lonsec', '$latdeg', '$latmin', '$latsec', '$alt', '$com', '$codesfo', '$codenat',  '$codriv', '$codecor1', '$codecor2', '$codecor3', '$codecor4'  ) ";
    Un grand merci si quelqu'un...

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    essai $londeg=0 car décimal
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Mais dans ce cas la j'insère 0 et non pas NULL...
    Un grand merci tout de même pour la réponse...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Et si tu ne le mets pas dans la requête s'il n'est pas renseigné, comme ça mysql lui affecteras la valeur null.

  5. #5
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Le NULL php et le NULL sql ne sont pas les mêmes. Si tu tentes d'insérer 'null', ca plantera, c'est normal. C'est la chaine de caractère NULL que tu insères et pas entre quotes.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par hugo123
    Le NULL php et le NULL sql ne sont pas les mêmes. Si tu tentes d'insérer 'null', ca plantera, c'est normal. C'est la chaine de caractère NULL que tu insères et pas entre quotes.
    Un grand merci ! Je crois que la solution est là...
    Comment affecter alors une valeur NULL ?
    if ($valeur=="") $valeur = NULL; ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Et non...
    Citation Envoyé par Odomat
    Un grand merci ! Je crois que la solution est là...
    Comment affecter alors une valeur NULL ?
    if ($valeur=="") $valeur = NULL; ?
    Ce dernier code ne fonctionne pas, quelqu'un a-t-il une idée ?

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Pour insérer NULL en SQL depuis PHP il faut passer par une chaîne de caractères (sinon c'est le NULL de PHP) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($valeur=='') $valeur = 'NULL';



    Julp.

  9. #9
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    oui mais attention a ne pas écrire ensuite : " '$valeur' " sinon on met entre quote la valeur NULL donc on rentre une chaine de caractèers.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Voilà la moitié de la réponse...
    Mais alors pour y insérer une valeur avec une virgule (décimale...) ?
    Car en effet:
    $valeur1="3,1321";
    if ($valeur1=="") $valeur1=NULL;
    INSERT INTO "table (valeur1, valeur2)" "VALUES ($valeur1, $valeur2)";

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il faut utiliser la notation anglophone (comme en PHP) à savoir remplacer la virgule par un point Il faut également que le type du champ accepte les décimales.


    Julp.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Et voilà l'autre moitié !
    Un grand merci à tous !

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

Discussions similaires

  1. Impossible d'insérer des champs vides
    Par shkyo dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/08/2006, 17h29
  2. Transformer des champs T * en const T *
    Par Gruik dans le forum C
    Réponses: 4
    Dernier message: 09/08/2006, 12h27
  3. Importance des champs vides
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 18h00
  4. affichage des champs vides
    Par nada83 dans le forum Access
    Réponses: 5
    Dernier message: 02/05/2006, 16h33
  5. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 01h05

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