MySQL et fonction DATE

sky727 Messages postés 2 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 28 août 2009 - 27 août 2009 à 17:43
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 29 août 2009 à 08:36
Bonjour à tous sur le forum,

J'ai une BDD sous MySQL avec 3 champs
- id
- pseudo
- date
le numéro de séquence (id) s'enregistre bien
le pseudo utilisé s'enregistre bien également...
.. par contre j'ai un problème au niveau de l'enregistrement du champ date, il est défini comme ceci : champ 'date', type 'timestamp', attributs 'on update CURRENT_TIMESTAMP', défaut 'CURRENT_TIMESTAMP' et pour extra 'on update CURRENT_TIMESTAMP '...

est-ce que cela semble de bons réglages ? car je n'obtiens que ceci : 0000-00-00 00:00:00 dans l,enregistrement du champ date... je pense avoir oublié ou omis qq.chose ?

Le but est d'obtenir bien entendu la date et l'heure lors de l'enregistrement...

Merci d'avance pour l'aide apportée et je vous souhaite une bonne fin de journée, cordialement...

Pierre

3 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
28 août 2009 à 17:43
Sakut Sky,

Peut on voir ta requête ?
Pour le reste je ne vois pas de problème.

Cordialement,


Kohntark -
0
sky727 Messages postés 2 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 28 août 2009
28 août 2009 à 18:54
Salut kohntark,

Voici la requête...

$host = 'localhost';
$user = 'arpep39';
$pass = 'admin';
$db = 'arpep39_bike';// nom de votre base de donnée
$inform = $user[1][2];
$date = date("d-m"); // Date au format Année-Mois-Jour <<<<<<<<<<<<<<<<<< AJOUT
// $heure = date("H:i" ); // Heure au format Heure:Minute en standby pour l'instant

// requete
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$sql="INSERT INTO visiteurs2 (id,pseudo,visite) VALUES ('','$inform','$date')";
$result=mysql_query($sql) or die("Requête INSERT en échec.");
mysql_close(); // Déconnexion de MySQL


Dis-moi si j'ai raté une chose, ou fait une erreur, comme déjà dit j'obtiens 0000-00-00 00:00:00 dans le champ visite qui est une date avec l'heure

MERCI pour ton aide et le temps que tu me consacres... Bonne fin de journée, cordialement,


Pierre
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
29 août 2009 à 08:36
Bonjour,

champ 'date', type 'timestamp', attributs 'on update CURRENT_TIMESTAMP', défaut 'CURRENT_TIMESTAMP' et pour extra 'on update CURRENT_TIMESTAMP '...



Cette déclaration signifie qu'un timestamp équivalent à la fonction MySQL NOW() ets utilisée par défaut comme valeur de toute initialisation ou mise à jour d'enregistrement.

Et dans ton code on trouve:
$date = date("d-m")
ce qui tu point de vue de MySQL ne correspond évidemment pas à un timestamp..

Puisqu ele timestamp date est donné en tant que valeur par défaut, ta requête d'insert est bancale:
$sql="INSERT INTO visiteurs2 (id,pseudo,visite) VALUES ('','$inform','$date')"; 

Si dans ta table le champ s'appelle 'date' et que dans la requête il s'apelle 'visite' il y a déjà un problème.

Avec les champs à valeur par défaut, un simple:
$sql="INSERT INTO visiteurs2 (id,pseudo) VALUES ('','$inform')"; 

ou si tu veux vraiment tout mettre:
$sql="INSERT INTO visiteurs2 (id,pseudo,visite) VALUES ('','$inform','NOW()')"; 
0
Rejoignez-nous