Page 1 sur 2

récupérer la date d'un eregistrement dans une bdd

Posté : 04 oct. 2005, 17:16
par fque1
Bonjour,

je cherche, lors d'un enregistrement de données dans une bdd à récupérer la date et heure de l'enregistrement

pour l'afficher ensuite dans une autre page :

ex: j'ai un système d'inscription à une newsletter, et je souhaite obtenir la date de l'inscription

pouvez vous m'éclairer

merci

Posté : 04 oct. 2005, 17:31
par seayoung
mm je pense que c'est pas vraiment ca que tu cherches mais rajoute un champ dans ta table avec la date du jour.
Lorsqu'une personne s'enregistrera la date du jour s'inscrira dans la base.

Posté : 04 oct. 2005, 17:32
par mere-teresa
Il a raison : au moment où tu insères, tu appelles la fonction SQL NOW() et tu ajoutes un champ 'dateInscription' à ta table :)

Posté : 04 oct. 2005, 17:37
par fque1
j'ai deja rajouter le champs date au format DATE dans ma bdd mais a chaque enreg. je n'obtient que 0000-00-00

comprend pas

Posté : 04 oct. 2005, 17:40
par zeus
Si tu ne met rien dans ton champ, il ne se rempli pas tout seul

Comme le dit mere-terese, il faut que tu utilise une fonction SQL

Posté : 04 oct. 2005, 17:44
par Invité
directement dans ma requete ?

Posté : 04 oct. 2005, 17:47
par seayoung
ou en php :
$d=strtotime('today');
$date_du_jour = strftime('%d/%m/%Y %H:%M:%S',  $d );
ca te permet de mettre la date au format que tu souhaites :lol:

Posté : 04 oct. 2005, 17:49
par zeus
ou en php :
$d=strtotime('today');
$date_du_jour = strftime('%d/%m/%Y %H:%M:%S',  $d );
ca te permet de mettre la date au format que tu souhaites :lol:
comme le dit seayoung ou directement dans la requete

Code : Tout sélectionner

INSERT INTO table(champ1, ... , date) VALUE ('valeur', ... , NOW())
Personnellement, je préfère la solution de Seayoung car elle te permet de modifier le format de la date ;)

Posté : 04 oct. 2005, 17:52
par seayoung
hihi merci c'est ce que j'utilise :lol:
car apres ca te permet de faire également plein de chose avec cette date
bien qu'il soit probable qu'avec le sql on puisse faire aussi plein de chose :roll:

Posté : 04 oct. 2005, 17:59
par Invité
ca ne fonctionne pas, voila ma requete :

Code : Tout sélectionner

$sql = "INSERT INTO t_newsletter(id, date, nom, prenom, email) VALUES('','$date', '$nom','$prenom','$email')";
avec les variables
$d=strtotime('today');
$date = strftime('%d/%m/%Y %H:%M:%S',  $d );

Posté : 04 oct. 2005, 18:08
par seayoung
quel est le message d'erreur ?
car normalement ca doit marcher
$d=strtotime('today');
$date = strftime('%d/%m/%Y %H:%M:%S',  $d );

$sql = "INSERT INTO t_newsletter(id, date, nom, prenom, email) VALUES('','$date', '$nom','$prenom','$email')";

Posté : 04 oct. 2005, 18:12
par albat
$sql = "INSERT INTO t_newsletter (id, date, nom, prenom, email) VALUES('','$date', '$nom','$prenom','$email')";
date est un mot réservé : tu n'as pas le droit de l'utiliser pour nommer un champ de ta table. [-X

Posté : 04 oct. 2005, 18:15
par albat
2 autres recommandations :

- Si tu ne veux pas attribuer de valeurs à un champ (ici : id),
retire-le de la description de ta table dans ta requête.

- fais attention à l'utilisation des ' et des "
et veille à "sortir" les vcariables PHP des chaînes de caractères

Est-ce que ceci fonctionne mieux ?
$sql = "INSERT INTO t_newsletter (date_inscription, nom, prenom, email) VALUES('".$date."', '".$nom."','".$prenom."','".$email."')";

Posté : 04 oct. 2005, 18:23
par Invité
a priori la requete fais ce qu'il faut (je viens de tester en changeant le nom de la table et les valeurs sont les bonnes)

mais dans ma base j'ai toujours 0000-00-00, quel format faut-il donné au champs date de la table ? j'ai essayé DATE DATETIME et cela ne fonctionne pas

[Résolu]

Posté : 04 oct. 2005, 18:25
par Invité
ca y est j'ai changé mon champs DATE en VARCHAR et ca passe !!

Merci à tous