Et bien s'il ne fait aucune action, le champ ne se met pas à jour, mais aucune vérification d'inactivité est faites, donc il reste en ligne...Envoyé par JWhite
Et bien s'il ne fait aucune action, le champ ne se met pas à jour, mais aucune vérification d'inactivité est faites, donc il reste en ligne...Envoyé par JWhite
KevinF
"Et puis quand tu as besoin de savoir si un membre est actif ou pas tu testes juste la différence entre l'heure actuelle et son heure de dernière activité dans la base."Envoyé par kevinf
Tu n'as plus de champ actif dans ta base, juste l'heure de dernière connexion, et ça suffit pour savoir si quelqu'un est actif ou pas
Essaie de prendre du recul sur ton problème...
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Daccord et comment la base sait qu'au bout de 10 minutes, le champ online doit se mettre à 0?
KevinF
mais tu en fais exprès ma parole
Pour la 3° fois :
Tu n'as plus de champ online dans ta base, juste l'heure de dernière connexion, et ça suffit pour savoir si quelqu'un est actif ou pas
Essaie de prendre du recul sur ton problème...
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Ah, je crois comprendre. Désolé, mais je ne le fais pas exprès.
En fait, j'ai une page de joueurs en ligne, avec ce code et bien fait je dois changer celui-ci pour afficher uniquement ceux qui sont actifs depuis les 10 dernières minutes ? :
Merci de ton aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <? session_start(); include("config.php"); include("include/variable.php"); include"include/config.php"; include"include/variable.php"; $db = mysql_connect($serveur, $login, $password); mysql_select_db($base,$db); $req = mysql_query("SELECT pseudo,xp FROM membres WHERE online='1'"); $result=mysql_query($sql); $rs=mysql_fetch_array($result); $pseudo=$rs["pseudo"]; $xp=$rs["xp"]; print(" <center><table class=\"tablo\" width=\"350\"> <tbody><tr> <td class=\"tédé\" ><strong><center><font class='main' color='green'>PSEUDO</font></center></strong></td> <td class=\"tédé\"><strong><center><font class='main' color='green'>XP</font></center></strong></td> <td class=\"tédé\"><strong><center><font class='main' color='green'>ECRIRE</font></center></strong></td> </tr> "); $result = mysql_query("SELECT pseudo,xp FROM membres WHERE online='2'"); while($rs=mysql_fetch_array($result)) { $listeconnecte.="<b> <tr> <td class=\"tédé\" onMouseOut=\"javascript:this.style.background=''\" onMouseOver=\"javascript:this.style.background='#A9A9A9'\"><font class=\"main\"><b>$rs[pseudo] </b></font></td> <td class=\"tédé\" onMouseOut=\"javascript:this.style.background=''\" onMouseOver=\"javascript:this.style.background='#A9A9A9'\"><font class=\"main\"><b><center>$rs[xp]</center> </b></font></td> <td class=\"tédé\" onMouseOut=\"javascript:this.style.background=''\" onMouseOver=\"javascript:this.style.background='#A9A9A9'\"><center><font class=\"main\"><A HREF=\"#\" onClick=\"window.open('ecrire.php?pseudo=".$rs[pseudo]."','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=500, height=500');return(false)\"><img src='imagesite/ecrire.gif' border='0'></a> </font></center></td> </tr> " ; } echo""; echo "$listeconnecte"; print(" </tbody> </table></center> "); ?>
KevinF
la solution est simple, au lieu dans ta requête de faire le tri des joueurs selon la valeur du champ d'activité, tu le fais selon la différence entre l'heure actuelle et l'heure de dernière activité et puis ça suffit
Shiv@ Skunk
Ah je vois une lueur d'espoir renaître
Si tu adoptes ma solution (sans champ online mais avec un champ derniere_activite de type timestamp par exemple), tu as juste à modifier ta requête comme suit :
C'est à creuser je pense pas que ça marche direct mais c'est l'idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $req = mysql_query("SELECT pseudo,xp FROM membres WHERE (NOW() - derniere_activite) < 600");
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Je n'ai jamais fait avec l'heure, donc un truc de ce genre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $result = mysql_query("SELECT pseudo,xp FROM membres WHERE online='CURRENT_DATE()-10'");
KevinF
oui, quelque chose comme ça mais pas avec "=" mais "<" à 10 parce que sinon tu trouveras que ceux qui ont été actifs il y a pile 10 minutes
Shiv@ Skunk
Envoyé par Shiva SkunkPourrait tu m'aider, car je ne sait pas trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $result = mysql_query("SELECT pseudo,xp FROM membres WHERE online='CURRENT_DATE()<10'");
Merci
KevinF
personnelement je mettrais :
pour plus d'informations : http://mysql.developpez.com/faq/?page=SYNTAXE_DATES$result = mysql_query("SELECT pseudo,xp FROM membres WHERE online>'CURDATE()-10'");
Shiv@ Skunk
Le problème c'est que current date affiche la date et non l'heure.
KevinF
En fait, j'ai trouvé sa :
UNIX_TIMESTAMP()
KevinF
Il faudrait connaître la base parce que SYSDATE c'est du Oracle...
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Est ce bon ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $result = mysql_query("SELECT pseudo,xp FROM membres WHERE online>'UNIX_TIMESTAMP()-600'");
KevinF
Bah ça coûte rien d'essayer...
Apparement tu es en MySQL ça marche pas ce que je t'avais donné (avec NOW) ?
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
essaye, si ça marche c'est que oui, sinon et bah nonEnvoyé par kevinf
Shiv@ Skunk
Sa ne marche pas.
KevinF
Apparement tu es en MySQL ça marche pas ce que je t'avais donné (avec NOW) ?
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.
Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Je suis bien en MysQL . Mais tu ne m'as donné que ca.Envoyé par JWhite
KevinF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager