Les dates : j'arrive pas à enrégistrer dans ma BD

Les dates : j'arrive pas à enrégistrer dans ma BD - SQL/NoSQL - Programmation

Marsh Posté le 08-07-2013 à 10:51:37    

Bonjour,
 
Après validation de mon formulaire, je récupère le mois et l'année sélectionnés par l'utilisateur (champ Select), puis je crée une date à partir de ces données.
 
Si l'utilisateur n'a pas selectionné une date, je récupère par défaut la date du jour.
 
Et quand je mets un echo juste après, j'ai ma date qui est bien affiché au bon format (exemple : 2013-08-07).
 
Sauf que quand j'enrégistre les données dans ma base, la date n'est pas enregistrée (je me retrouve avec 0000-00-00).
 
Voici mon code :  
 
                $dt_effet= date('d-m-Y');                                    //je récupère la date du jour (par défaut)
   
  if ( isset ($_POST ['new_dt_contrat']) ){              //je teste si l'utilisateur a choisi une date
  $m=$_POST ['dt_mois'];
  $y=$_POST ['dt_annee'];
  $dt_effet = date("$y-$m-01" );                          //je crée une date avec le mois et l'année choisi par l'utilisateur
  }
 
                //echo $dt_effet ;                                         //m'affiche bien la date d'effet du contrat.
 
               ...
 
                // Insertion à la BD
 
                $sql =new mySql ("INSERT INTO `matable`
  (`id`, `numcontrat`, `name`, `firstname`, `dt`, `dt_effet`)
                VALUES (NULL, $num_contrat, $name, $firstname, NOW (), $dt_effet) " );     //Tout est OK sauf la date d'effet du contrat ( $dt_effet ).
 
 
Je vous remercie d'avance pour votre aide.
 


---------------
signé babs...peace.
Reply

Marsh Posté le 08-07-2013 à 10:51:37   

Reply

Marsh Posté le 08-07-2013 à 11:00:06    

$dt_effet= date('d-m-Y');  
 
-> vue le format, m'étonnes pas que ça marche pas :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-07-2013 à 11:03:28    

Merci pour la réponse, j'ai mis ce format parce que quand je regarde dans la BD, je trouve le même format.
 
DOnc, tu penses que je devrais mettre ce format : 00/00/0000 ???

Reply

Marsh Posté le 08-07-2013 à 11:11:57    

rufo a écrit :

$dt_effet= date('d-m-Y');  
 
-> vue le format, m'étonnes pas que ça marche pas :/


 
 
 
Merci pour la réponse, j'ai mis ce format parce que quand je regarde dans la BD, je trouve le même format.  
 
Donc, pourriez-vous me conseiller le bon format ???

Reply

Marsh Posté le 08-07-2013 à 11:37:03    

Je suis très étonné car les champs de type date en BD ont par défaut le format YYYY-MM-DD.
 
Et dans ton code, on trouve cette ligne : $dt_effet = date("$y-$m-01" );
 
Quoi qu'il en soit, y'a une incohérence dans les formatas de date dans ton code :/
 
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
 

Citation :

The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-07-2013 à 11:47:53    

Là je vois plus claire , je pense que que ça va marcher avec ce format.
 
Je reviens vite vers vous.
 
Thanks for all.

Reply

Marsh Posté le 08-07-2013 à 12:25:03    

Comme promis je reviens vers vous, et très content même ^^
 
ça marche nickel, j'ai fait ceci : $dt_effet= date('Ymd');
 
En effet, j'ai juste enlevé les " - " , comme vous pouvez le constater.
 
J'ai réussi grâce à vous .. alors grand merci !!!  :D

Reply

Marsh Posté le 08-07-2013 à 13:03:55    

C'est pas trop conseillé d'enlever les "-" :/ Si tu veux afficher une date en fr (jj/mm/aaaa), avec le format YYYY-mm-dd, suffit de faire :
date("d/m/Y", strtotime($DateFormatEN));


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-07-2013 à 14:23:08    

C'est appliqué, et ça marche nickel..merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed