(29-04-2016, 03:31 PM)Xenos a écrit : Heu, non, je ne pensais pas stocker tous les évènements en BDD (ce serait possible mais effectivement lourd). Simplement, pourquoi ne pas remplacer ton booléen "connecté / pas connecté" par un datetime "dernière activité"? Et considérer "NOW() - dernière activité > 15minutes → joueur présent" ?
(la table que je te présente utilise ce système pour stocker la dernière activité des sessions PHP des joueurs, ce que j'avais cru être ta structure, tu peux reprendre le même principe avec id_joueur (INT) | ... tes colonnes actuelles ... | date_activite (DATETIME))
PS: tu peux même utiliser une colonne virtuelle "est actif", qui fait le calcul "NOW() - dernière activité", ou une vue (mais ce sont deux techniques un peu plus poussées, t'es pas obligé de plonger dedans direct).
Mais le soucis (à moins que je n'ai toujours pas compris ) c'est que si je me connecte, je remplie "dernière activité" par NOW().
Pendant 15 minutes je suis considéré comme non connecté, puis je rentre dans la condition "NOW() - dernière activité > 15minutes".
Puis je quitte le navigateur sans me déconnecter. Dans une heure, un mois, un an, etc.... la condition "NOW() - dernière activité > 15minutes" seras toujours vrai..
ne serait-ce pas plutôt "(NOW() - dernière activité) < 15minutes → joueur présent" ?
EDIT: Encore que là il y aurais un soucis quand même... si je me connecte pendant 15 minutes je suis considéré comme connecté, mais même si je joue toujours au bout de 30 minutes, je ne suis plus considéré comme connecté :/