Requête SQL avec timestamp

vegadod -  
hervé56 Messages postés 268 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai besoin de détecter l'inactivité d'un membre. Ainsi, lorsqu'il se connecte, le timestamp est enregistré dans la Base De Données.
Si la différence entre le timestamp actuel et ce timestamp de connexion est supérieur à 5 minutes, alors je met à jour la BDD.

Bref, voici le code qui gère cela :
$temps_actuel = time();
$requete = mysql_query("UPDATE membres SET connecte='-1', temps_connexion='0' WHERE temps_connexion<'".$temps_actuel."'-3590")or die(mysql_error());

Le problème, c'est qu'il ne fonctionne pas du tout, et j'aimerai vraiment savoir pourquoi :o
Pourriez-vous m'aider ?

Merci d'avance.
PS : alors là, vous allez me dire "mais même s'il est connecté et qu'il reste sans rien faire pendant 5 minutes, ce code va le penser déconnecté !". Oui, mais j'ai pensé à coder un script JS qui empêche cela.

2 réponses

Lumpy-Rock Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour :)

J'ai déjà fait un script pour voir ceux qui sont connectés. L'erreur est dans ta requête :
$requete = mysql_query("UPDATE membres SET connecte='-1', temps_connexion='0' WHERE temps_connexion<'".$temps_actuel."'-3590")or die(mysql_error());


Elle est très longue, alors tu peux faire un peu plus clair en mettant la requête dans une variable. Et, comme l'a dit hervé56, tu as une erreur dans la concaténation avec ta variable. Essaie comme ça :
$requet = "UPDATE membres SET connecte='-1', temps_connexion='0' WHERE temps_connexion<'$temps_actuel -3590'";
$requete = mysql_query($requet)or die(mysql_error());
1
hervé56 Messages postés 268 Date d'inscription   Statut Membre Dernière intervention   10
 
c'est déja mieux en effet =)
0
hervé56 Messages postés 268 Date d'inscription   Statut Membre Dernière intervention   10
 
c'est ca qui n'est pas tres beau :

..'".$temps_actuel."'-3590"...
0