par
micetf » 17 juin 2009, 14:59
Je ne suis pas sûr de bien comprendre ce que tu as codé.
Peut-être qu'en essayant de m'expliquer,
vas-tu découvrir ton erreur ?
Voilà déjà quelques questions que je me pose :
mysql_query('INSERT INTO forum_whosonline VALUES('.$id.', '.time().','.$ip.')
ON DUPLICATE KEY UPDATE
online_time = '.time().' , online_id = '.$id.'');
Dans ta table forum_whoisonline, tu enregistres tous les visiteurs (membres ou non) en évitant de les dupliquer.
L'id=0 est réservé aux visiteurs. Tu ne sais finalement pas combien de visiteurs sont connectés ?
Pour les membres, l'id est égal à l'id de la table membres ?
$requete_count_membres = mysql_query('SELECT membre_id, membre_pseudo, membre_avatar
FROM forum_whosonline
LEFT JOIN membres ON membre_id = online_id
WHERE online_time > '.$time_max);
Cette requête permet de récupérer toutes les infos sur les membres connectés, à condition qu'il n'y ait pas de membre avec un id=0 (le visiteur serait alors considéré comme membre) ?
$count_membres = mysql_result(mysql_query('
SELECT COUNT(*) AS nbr_membres FROM forum_whosonline WHERE online_id <> 0 && online_time > '.$time_max.''),0);
Cette requête permet de compter les membres connectés.
$count_online = $count_visiteurs + $count_membres;
Tu calcules combien de personnes sont en ligne. Mais $count_visiteurs = combien ?
while ($data_count_membres = mysql_fetch_assoc($requete_count_membres))
Tu parcours la liste des membres connectés pour afficher leurs infos (avatar).
if ($count_membres)
{préparation texte à afficher}
else $count_visiteurs .= '';
A quoi sert le if ($count_membres) ? Si il vaut zéro, tu ne devrais pas rentrer dans ta boucle while ?
A quoi sert de concaténer $count_visiteurs à rien ?
Voilà,
peut-être que mon incompréhension t'aidera à comprendre ton problème.
Fred
Je ne suis pas sûr de bien comprendre ce que tu as codé.
Peut-être qu'en essayant de m'expliquer,
vas-tu découvrir ton erreur ?
Voilà déjà quelques questions que je me pose :
[php]mysql_query('INSERT INTO forum_whosonline VALUES('.$id.', '.time().','.$ip.')
ON DUPLICATE KEY UPDATE
online_time = '.time().' , online_id = '.$id.'');
[/php]
Dans ta table forum_whoisonline, tu enregistres tous les visiteurs (membres ou non) en évitant de les dupliquer.
L'id=0 est réservé aux visiteurs. Tu ne sais finalement pas combien de visiteurs sont connectés ?
Pour les membres, l'id est égal à l'id de la table membres ?
[php]$requete_count_membres = mysql_query('SELECT membre_id, membre_pseudo, membre_avatar
FROM forum_whosonline
LEFT JOIN membres ON membre_id = online_id
WHERE online_time > '.$time_max); [/php]
Cette requête permet de récupérer toutes les infos sur les membres connectés, à condition qu'il n'y ait pas de membre avec un id=0 (le visiteur serait alors considéré comme membre) ?
[php]$count_membres = mysql_result(mysql_query('
SELECT COUNT(*) AS nbr_membres FROM forum_whosonline WHERE online_id <> 0 && online_time > '.$time_max.''),0);[/php]
Cette requête permet de compter les membres connectés.
[php]$count_online = $count_visiteurs + $count_membres;
[/php]
Tu calcules combien de personnes sont en ligne. Mais $count_visiteurs = combien ?
[php]while ($data_count_membres = mysql_fetch_assoc($requete_count_membres))
[/php]
Tu parcours la liste des membres connectés pour afficher leurs infos (avatar).
[php]if ($count_membres)
{préparation texte à afficher}
else $count_visiteurs .= '';
[/php]
A quoi sert le if ($count_membres) ? Si il vaut zéro, tu ne devrais pas rentrer dans ta boucle while ?
A quoi sert de concaténer $count_visiteurs à rien ?
Voilà,
peut-être que mon incompréhension t'aidera à comprendre ton problème.
Fred