Aller au contenu

nombre de connectés


austin powers

Sujets conseillés

Selectionne dans phpbb_sessions

(je ne sais pas si ça fonctionne mais je pense)

$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

//nombre de connectés :
print($r[0]);

60*15 dans la requête -> les 15 dernières minutes, en théorie ca doit fonctionner

Lien vers le commentaire
Partager sur d’autres sites

parce que sinon en editant le fichier session.php je ne retrouve pas ce code  :blink:

Qui a parlé du fichier session.php ?

hcplayer te dit de sélectionner ce que tu cherches dans la table "phpbb_sessions" de ta base de données SQL ;)

Lien vers le commentaire
Partager sur d’autres sites

desolé pour ma betise :blush: mais quelle est la procedure exacte a suivre???

On est bien d'accord que je veux mettre sur la page d'index du site le nombres de connéctés sur le forum qui est dans un autre dossier??

Doit je coller le script sur la page d'accueil du site??? :wacko:

Lien vers le commentaire
Partager sur d’autres sites

$database = ""; //base sur laquelle il y a phpbb
mysql_select_db("");
$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

Ceci ou tu as l'habitude de placer tes requetes, si tu as plusieurs base, selectionne la bonne.

Ensuite :

Il y a actuellement <? print($r[0]); ?> connecté sur le forum

la ou tu souhaite le mettre :)

Lien vers le commentaire
Partager sur d’autres sites

ben alors ou est le probleme,j'ai fait cette requete

$database = ""; //base sur laquelle il y a phpbb(ici j'ai mis le nom d'user)
mysql_select_db("ici j'ai mis le nom de la bdd");
$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

Lien vers le commentaire
Partager sur d’autres sites

fait :

$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))") or die(mysql_error());

et donne nous le message, car la requête fonctionne très bine chez moi.

ce n'est pas le nom d'user qu'il faut mettre, c'est le nom de ta base, celui que tu as choisi, quand tu as installé ton forum ;)

Modifié par hcplayer
Lien vers le commentaire
Partager sur d’autres sites

Il y a lorsqu'on s'attaque à la programmation un minimum d'effort à faire.

Tu es le seul à pouvoir répondre à cette question parce qu'il s'agit du nom de TA base de données. C'est donc toi seul qui peux le connaître.

Merci aussi de prendre la peine de lire la documentation, cela évitera pas mal de questions inutiles.

Dan

Lien vers le commentaire
Partager sur d’autres sites

En fait je pense qu'on c'est mal compris :hypocrite:

j'explique

$database = "[b]ici j'ai mis le nom de la bdd du forum[/b]"; 
mysql_select_db("[b]ici je met quoi?? [/b]");
$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

Merci de vos reponse et desolé si ça a l'air simple mais moi j'ai du mal :whistling:

Lien vers le commentaire
Partager sur d’autres sites

mysql_select_db

(PHP 3, PHP 4 , PHP 5)

mysql_select_db -- Sélectionne une base de données MySQL

Description

bool mysql_select_db ( string database_name [, resource link_identifier])

$database = "ici j'ai mis le nom de la bdd du forum";

Donc oui, il te faut mettre :

mysql_select_db($database);

Lien vers le commentaire
Partager sur d’autres sites

Désolé de la reponse tardive,j'etais au boulot je viens de rentrer :D

ça ne marche toujours pas ,alors peut etre que je n'ai rien compris :nono:

je colle le code que je met ce sera plus facile pour vous de detecter l'erreur

$database = "xxxxxxxxxxx"; 
mysql_select_db($database);
$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

Lien vers le commentaire
Partager sur d’autres sites

$database = "xxxxxxxxx"; 
mysql_select_db($database);
$re = mysql_query("SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))");
$r = mysql_fetch_assoc($re);

Essaies de coller la requète dans phpmyadmin.

Pour cela, tu remplaces les lignes ci-dessus par ceci :

$database = "xxxxxxxxx"; 
mysql_select_db($database);
$query= "SELECT count(session_id) FROM phpbb_sessions WHERE UNIX_TIMESTAMP() BETWEEN session_start AND (session_start+(60*15))";
$re = mysql_query($query);
echo"<p>".$query."<p>";
echo"<p>".$re."<p>";
$r = mysql_fetch_assoc($re);
echo"<p>".$r."<p>";
die("");

Profites de l'occasion pour nous poster l'erreur exacte renvoyée par ces lignes.

N'oublies pas de modifier le nom de la base de données.

J'ai édité ton post, il ne sert à rien (dans ce cas) d'afficher le nom de ta base ;)

ps : Je ne connais pas les forums phpbb, mais s'il n'y a pas de champs session_start, il est 'normal' que ca ne marche. S'il y a un champ 'session_start', il n'est pas vraiment normal qu'ils donnent le nom d'une fonction php pour servir de nom de champ..

Lien vers le commentaire
Partager sur d’autres sites

Lafosca doit avoir raison, il faut te connecter à ta base avant si ce n'est pas fait :

mysql_connect("xxx","xxx","xxx");

Ensuite après vérification plus avant, je te reconfirme que la requête fonctionne, et que le chiffre correspond avec les utilisateurs en ligne donnés en bas de phpbb, donc ça marche.

Je te recommande la lecture http://www.phpdebutant.org , utiliser des scripts comme phpbb c'est bien, mais dès qu'on veut un truc un peu perso, il faut s'investir un peu plus en programmation ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...