Champ `Date' en bdd mysql [Résolu/Fermé]

- - Dernière réponse :  Phil21 - 11 mars 2012 à 13:47
Bonjour à tous,
Lorsque je valide mon formulaire sans rien renseigner dans le champ `Date' alors je me retrouve avec une date en Bdd type 0000-00-00
Comment faire pour que le champ `Date ` reste vide en Bdd par défaut et ne soit renseigné seulement si je saisis une date dans le champ de mon formulaire ?

Merci pour les infos !
Afficher la suite 

7 réponses

Meilleure réponse
1
Merci
Et bien, non seulement cette valeur 0000-00-00 est visible dans mon champ de formulaire de modification et en plus je travail avec une condition sur ce champ (la couleur de la date change et passe en rouge si la date du jour est supérieure à la date du champ) donc le champ date du formulaire est toujours de couleur rouge.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65052 internautes nous ont dit merci ce mois-ci

maka54
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
78 -
voilà concrètement ton problème, c'est donc pas au niveau de la base de données mais de l'affichage ...

Tout d'abord pour transformer ta date en FR avec date_format et tester si le champ est renseigné avec if

SELECT IF('date',DATE_FORMAT('date','%d/%m/%Y'),'') as date FROM 'table' ....
Messages postés
1061
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
136
0
Merci
Salut,

Il faut que tu le définisses en DEFAULT NULL.
ALTER TABLE ta_table SET ton_champ SET DEFAULT NULL;
J'espère que ça fonctionne.

Cordialement,

Adrien.
Oui comme dit Autimn 'Tears votre champ DATE doit être nul par défaut. Attention cependant qu'il ne soit pas identifiant ou nécessaire pour le reste du système d'information, auquel cas c'est faux les lignes d'enregistrements doivent avoir une date, quitte à en mettre une bidon.
0
Merci
Bonjour,

Merci à vous deux pour les réponses, j'ai réglé directement en bdd mon champ 'date' sur
Null => null
Défaut => NULL

ça ne change rien, mon champ 'date' n'est toujours pas vide et indique 0000-00-00 lors d'un nouvel enregistrement...
Autumn`Tears
Messages postés
1061
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
136 -
J'essaierai de mon côté, mais je suppose que c'est la valeur par défaut d'un champ date nul...
Autumn`Tears
Messages postés
1061
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
136 -
Hm, montre-moi plutôt la requête que tu effectues s'il te plaît !
0
Merci
mysql_query ("UPDATE ma_table SET id='$valeur', membre='$membre', date='$date' where id='$valeur'")or die("Erreur lors de la modification !");
Autumn`Tears
Messages postés
1061
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
136 -
Essaie avec if($date == '') { $date = NULL; }
Avant de faire ta requête
0
Merci
Non, ça ne fonctionne pas.

Je pense finalement qu'un champ de type `date' dans une bdd mysql ne peut pas être vide, car si je fais un nouvel enregistrement directement par la bdd et sans rien renseignements dans le champ `date' alors la date passe automatiquement avec la valeur 0000-00-00 après validation.

Bon, c'est pas grave je vais changer le type `date' par un type `varchar(10)' et je ferais mes comparaisons de date avec une autre méthode...

Merci beaucoup d'avoir pris de ton temps pour me guider ! c'est sympa.
Bon dimanche.
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
78
0
Merci
0000-00-00 est la valeur par défaut d'un champ date

qu'est ce qui te dérange dans le fait d'avoir cette valeur en base de données ?
0
Merci
ça fonctionne !
Je ne suis visiblement pas parti sur la bonne voie depuis le début...
Merci à tous, j'ai encore appris une chose grâce à votre dévouement.