Page 1 sur 1

Mise à jour d'une date dans une BDD

Posté : 14 oct. 2007, 14:41
par daftbot
Bonjour, j'ai un problème avec l'authentification d'une personne sur mon site, en faite quand une personne se connecte sur le site j'aimerais que dans la base de donnée la date à laquelle la personne ce connecte vienne ecraser la date qui est deja inscrite.
$sql="UPDATE inscrit SET date_maj='TIMESTAMP'"
Voila le code que j'ai, mais la date ne se remplace pas, et pourtant le navigateur ne me renvoi aucune erreur.

Je ne sais pas de quel type doit être la colonne dans ma base de donnée, je l'ai mise en TIMESTAMP.

Quelqu'un aurait il une solution à me proposer. Merci d'avance.

Re: Mise à jour d'une date dans une BDD

Posté : 14 oct. 2007, 15:08
par Tracker
Bonjour, j'ai un problème avec l'authentification d'une personne sur mon site, en faite quand une personne se connecte sur le site j'aimerais que dans la base de donnée la date à laquelle la personne ce connecte vienne ecraser la date qui est deja inscrite.
$sql="UPDATE inscrit SET date_maj='TIMESTAMP'"
Voila le code que j'ai, mais la date ne se remplace pas, et pourtant le navigateur ne me renvoi aucune erreur.

Je ne sais pas de quel type doit être la colonne dans ma base de donnée, je l'ai mise en TIMESTAMP.

Quelqu'un aurait il une solution à me proposer. Merci d'avance.
'TIMESTAMP', c'est une chaine de caractère, pour une date c'est pas terrible... :wink:
$sql="UPDATE inscrit SET date_maj = now()"

Par contre tu es certain qu'il ne manque pas un clause where dans ton ordre genre, where userid = ???
Sinon tu vas modifier la date pour tous les inscrits.

Tracker.

Posté : 14 oct. 2007, 15:52
par daftbot
Merci de ta réponse, effectivement je n'y avait pas pensé, ca serait balo que ca change la date pour tout le monde. Mais maintenant le now() il faut que je le détermine ? et que dois je mettre dans ma base de donnée ?

Posté : 14 oct. 2007, 17:33
par Tracker
Merci de ta réponse, effectivement je n'y avait pas pensé, ca serait balo que ca change la date pour tout le monde. Mais maintenant le now() il faut que je le détermine ? et que dois je mettre dans ma base de donnée ?
now() c'est une fonction mysql qui retourne le datetime courant, si tu veux plus d'info:

Code : Tout sélectionner

google > mysql now
a+

Posté : 14 oct. 2007, 20:03
par daftbot
Je suis désolé de revenir à la charge mais impossible de faire bouger quelque chose dans la base donnée :
<?
/*Vérification si les champs on bien été rempli*/
if(empty($mdp) || empty($pseudo) ) {
include "connexion.php";
exit;
}
/*CONNEXION A LA BASE DE DONNEE*/
include "commun/connexion.inc.php";
/*VERIFICATION DU LOGIN*/
$sql="SELECT clef FROM inscrit WHERE pseudo='$pseudo' and mdp='$mdp'";
$resultat=@mysql_db_query($dbname,$sql,$id_link);
$nombre=mysql_num_rows ($resultat);
if ($nombre <1) {
$auth=0;
include "connexion.php";
exit;
}
/*RENTRE LA DATE DE CONNEXION DANS LA TABLE*/
$sql="UPDATE clef FROM inscrit WHERE pseudo='$pseudo' and mdp='$mdp' SET date_maj='now()'"
?>
Voila mon code entier en ce qui concerne l'identification d'un membre, mais la dernière n'a aucun effet sur la BDD !!!

Posté : 14 oct. 2007, 20:07
par momox
now() est une fonction de interne a mysql et ne doit pas être placée entre quotes ;)

Posté : 14 oct. 2007, 20:26
par daftbot
Même sans les quotes rien ne bouge dans ma base !

EDIT : Voila mon code marche, la date se met a jour voici le code :
$sql="UPDATE inscrit  SET  date_maj=now()";
mysql_db_query($dbname,$sql,$id_link);
Mais comme prévu la date se met a jour pour tous les membres, alors ou mettre la condition afin que cela ne se produise pas ?

EDIT 2 : C'est bon problème résolu
$sql="UPDATE inscrit  SET  date_maj=now() WHERE pseudo='$pseudo' and mdp='$mdp'";
mysql_db_query($dbname,$sql,$id_link);