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

SQL Procédural MySQL Discussion :

remettre NULL dans un champ date


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Points : 324
    Points
    324
    Par défaut remettre NULL dans un champ date
    bonjour,

    j'ai dans une table un champ date.

    Dans mon appli je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($date_planif=' '){ $date_planif=NULL; }
    		else { $date_planif=dateconvert($date_planif); 
    ensuite je fais mon update
    enf ait si dans mon champ j'ai rien je veux mettre NULL dans ma table mais ca marche pas ca insere toujours 0000-00-00

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    La colonne n'est pas en NOT NULL ?

    Regarde aussi du côté du sql mode : http://maximilian.developpez.com/mys...n_mysql5/#L3-3

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Points : 218
    Points
    218
    Par défaut
    Attention, NULL a une certiane signification en PHP.
    Il faut faire puis quelquechose dans le style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "update matable set date=".addslashes($truc)." where ... id=".addslashes($myid);
    Autre chose, le test d'égalité c'est == et non pas =
    Encore autre chose: vous êtes sûr de voulpoir tester $date_planif == ' ' et non pas $date_planif='' ?

    A mon avis le test est mauvais donc a chaque fois $date_planif prend la valeur dateconvert(NULL) soit 0000-00-00 !

    La remarque de Maximillian est valable aussi.
    Un petit nous aiderait aussi!

  4. #4
    Membre averti Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Points : 324
    Points
    324
    Par défaut
    voila exactement ce que je fais mais pas moyen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if($date_planif==''){ $date_planif='null'; }
    		else { $date_planif=dateconvert($date_planif); }
     
    mysql_query("UPDATE servicecommunication.demande_badge 
    			 SET date_planif_badge='".$date_planif."'
    			 WHERE id_demande_badge='$iddemande'")

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 208
    Points : 218
    Points
    218
    Par défaut
    Si la valeur est "null" ca ne marchera jamais avec des quotes simples !
    En résumé:

    date_planif = 'null' ne marche pas

    date_planif = null marche.

    Donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    f($date_planif==''){ $date_planif="null"; }
          else { $date_planif="'".dateconvert($date_planif)."'"; }
     
    mysql_query("UPDATE servicecommunication.demande_badge
              SET date_planif_badge=".$date_planif."
              WHERE id_demande_badge='$iddemande'")
    8) Si votre test correspond bien a un champ vide par défaut venant d'un formulaire alors ca devrait etre okay!

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 202
    Points : 8 428
    Points
    8 428
    Billets dans le blog
    17
    Par défaut
    Au cas où $date_planif est une chaîne vide tu envoies ceci au moteur MySQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE tatable
    SET champ_date = 'NULL'
    WHERE [...]
    Or je crois qu'il faudrait plutôt envoyer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE tatable
    SET champ_date = NULL
    WHERE [...]
    Perso je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE matable
    SET champ_date = NULLIF('$date_du_form', '')
    WHERE [...]
    => Si $date_du_form est une chaîne vide alors NULLIF( ) retourne NULL, autrement il retourne $date_du_form



    Edit : grilled :)

  7. #7
    Membre averti Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Points : 324
    Points
    324
    Par défaut
    merci bcp

  8. #8
    Membre averti Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Points : 324
    Points
    324
    Par défaut
    desole,

    mais maintenant c lorsqu'il y a une date qu'il me met 0000-00-00

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if($anciendateplanif!=$date_planif){
    	if($date_planif==''){ $date_planif="NULL"; }
    		if($date_planif!='') { $date_planif=dateconvert($date_planif); }
    		echo $date_planif;
    mysql_query("UPDATE servicecommunication.demande_badge 
    			 SET date_planif_badge=".$date_planif."
    			 WHERE id_demande_badge='$iddemande'")

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 202
    Points : 8 428
    Points
    8 428
    Billets dans le blog
    17
    Par défaut
    Ben tu ne suis pas ce qu'on te dit de faire, donc forcément ça ne va pas fonctionner
    Relis nos réponses précédentes.

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

Discussions similaires

  1. [AC-2003] Affichage null dans un champ DATE
    Par Cavart dans le forum IHM
    Réponses: 1
    Dernier message: 27/09/2012, 18h53
  2. Comment coder une date NULL dans un champ datetime ?
    Par tonton67 dans le forum Développement
    Réponses: 3
    Dernier message: 11/11/2008, 11h54
  3. Valeur <Null> d'un champ date dans une requête
    Par GodGives dans le forum Développement
    Réponses: 2
    Dernier message: 02/10/2007, 13h56
  4. Valeur <Null> d'un champ date dans une requête
    Par GodGives dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/10/2007, 13h56
  5. insérer un 'NULL' dans un champ de type DATE
    Par 84mickael dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/06/2005, 09h23

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