Enregistrer une date et une heure dans une base de données MySQL

Schlaufox Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour !

Je cherche un moyen de récupérer grâce à un formulaire un nom, un numéro, une date et une heure puis de l'enregistrer dans une base de donnée.

Ma table COURSE ressemble donc à ça :

COURSE :
idCourse INT (clé primaire auto increment)
Date DATETIME
Numero FLOAT


Tout marche très bien pour l'enregistrement du nom et du numéro, mais je n'arrive pas à enregistrer la date et l'heure...

Auriez-vous un coup de main à me donner ? :)
Merci d'avance !
A voir également:

2 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Schlaufox,

Assure toi que le format des données DATETIME correspond bien à ce qui est attendu par MySQL :

The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

https://dev.mysql.com/doc/refman/5.7/en/datetime.html


Dal
1
Schlaufox Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse Dal !

Effectivement mon problème est un problème de format ; déjà je n'arrive pas à récupérer de mon formulaire pour l'enregistrer dans une variable PHP.
Pour l'instant j'ai mis " $date=$_POST["date"]; " mais je sais que ce n'est pas correct. Et donc par la suite l'enregistrement dans la base de données ne marche pas

Pour l'instant dans la page contenant le formulaire j'ai :

<form method="post" action="course_inscrite.php">
<p>
<label for="date">Date et heure de la course : </label><input type="datetime-local" name="Date" id="date"><br>
<input type="reset"/><input type="submit" /><br>
</p> 
</form>


et dans la page "course_inscrite.php"

<?php
//(Connexion à la base correcte)
//---------Attribution des valeurs du formulaire--------------
$date=$_POST["date"]; //là je sais que j'ai faux mais je trouve pas de solution

//----------Remplissage de la table "Course"-------------------
$sqlCourse = "INSERT INTO Course(`Date`) VALUES ('$date')";
mysqli_query($con,$sqlCourse) or die ('<br>Erreur SQL : '.$sqlCourse.'<br />'.mysql_error());
	
//-------------Fermeture de la connexion-------------------
mysqli_close($con);


J'ai donc comme message d'erreur " Notice: Undefined index: date in (...) on line 21" (normal)
Mais je ne parviens pas à trouver comment résoudre ce problème malgré beaucoup d'essais.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Tu as mis une majuscule dans le contenu de "name" dans ton html (il vaut
Date
), tu devrais donc récupérer ta variable POSTée en respectant cette casse sous Php.

Essaye :

$date=$_POST["Date"];
echo "<p>J'ai récupéré la date $date</p>";
exit;

Dal
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
avant de tenter d'insérer quoi que soit ayant été récupéré d'un formulaire en le passant à ta base de données, tu devrais aussi valider que c'est bien le type de contenu attendu, sinon ton application peut être vulnérable à des attaques par injection de code SQL.

par exemple en utilisant
date_create_from_format
comme suggéré là :

https://stackoverflow.com/questions/15858685/fast-way-in-php-to-check-if-a-value-is-in-mysql-datetime-format#15858690

ou en utilisant une regexp avec
preg_match
0