2011-10-24 1 views
0

Je travaille sur un système de gestion de contenu personnalisé (CMS) assez simple. Une table de base de données contient les noms d'utilisateur, les mots de passe, les adresses e-mail et un champ date/heure indiquant la dernière connexion de l'utilisateur (j'ai utilisé "NOW()" dans la requête lors de la mise à jour). Lorsqu'un utilisateur se connecte, le script met à jour une table dans la base de données et définit la nouvelle heure (en utilisant NOW()).Utilisation de l'horodatage pour afficher les utilisateurs actifs?

Maintenant, je voudrais montrer quels utilisateurs sont actuellement connectés, au cours des 5 ou 10 dernières minutes. Je n'ai aucune idée de comment accomplir ceci, par conséquent je demande votre aide. Sur Internet, j'ai lu que je devais le faire avec un horodatage, mais je n'ai aucune idée de comment cela fonctionne.

  1. J'ai besoin de savoir comment définir un horodatage spécifique.

  2. Je dois savoir comment je peux vérifier en PHP si l'utilisateur a été connecté au cours des 5 ou 10 dernières minutes pour que je puisse afficher son nom quelque part.

Merci pour votre aide!

Répondre

4

1. Pourquoi avez-vous besoin de définir un horodatage personnalisé? Utiliser NOW() est tout ce dont vous avez besoin.

2. Cette requête trouvera tous les utilisateurs où la colonne est latest_login au cours des 10 dernières minutes:

SELECT * FROM users WHERE latest_login >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)

+0

Merci beaucoup! Fonctionne très bien. Je ne savais pas que c'était possible de cette façon. – 45808

0

ok est assez simple

1TS - convertir votre date en timestamp en utilisant la fonction mktime (vérifiez google, disons $ date)

2ème - utilise la fonction time() pour obtenir l'horodatage actuel (disons $ now)

3 if ((maintenant $ - $ date)> (5 * 60/* 5 minutes * /)) {return "not login"} else return "login"

horodatage

compte secondes pour 5 * 60 est 5 minutes

Questions connexes