Champ `Date' en bdd mysql

Résolu/Fermé
Phil21 - 10 mars 2012 à 18:41
 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 !

7 réponses

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.
1
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 11/03/2012 à 13:27
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' ....
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
Modifié par Autumn`Tears le 10/03/2012 à 19:06
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.
0
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
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...
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
11 mars 2012 à 10:52
J'essaierai de mon côté, mais je suppose que c'est la valeur par défaut d'un champ date nul...
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
11 mars 2012 à 11:36
Hm, montre-moi plutôt la requête que tu effectues s'il te plaît !
0
mysql_query ("UPDATE ma_table SET id='$valeur', membre='$membre', date='$date' where id='$valeur'")or die("Erreur lors de la modification !");
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
11 mars 2012 à 12:12
Essaie avec if($date == '') { $date = NULL; }
Avant de faire ta requête
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
11 mars 2012 à 13:05
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
ç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.
0