afficher les 5 dernier utilisateur d'une page
bonjour,
je voudrais savoir la meilleur facon d'enregistrer (la plsu optimal possible) les 5 derniere utilisateur d'une page, plus précisement d'un profil.
Bien sure c utilisateur sont connecté au site via un session_start()
Tu cherches à afficher les 5 derniers utilisateurs inscris sur un site ?
Ou le nom des 5 derniers membres qui ont visités une page précise ?
Dans le cas 1, c'est simple (un simple SELECT from ta table de membre ORDER BY id DESC LIMIT 5).
Dans le cas 2, c'est plus complexe, il te faut loguer pour chaque page du site les 5 dernieres personnes qui l'ont visité.
le cas 2
mais la page est une page profil du style:
index.php?page=profil&user=nom_d_utilisateur
donc mon profil.php cherche le nom d'utilisateur dans la base de données données en paramétre et affiche plein d'info
Ca ne change rien au problème.
Il te faut loguer les visiteurs de cette page.
Ou alors, tu t'es mal exprimé sur ce que tu souhaitais.
les utilisateurs peuvent visiter cette page en etant logué ou pas, ce que j'aimerais c'est afficher les 5 dernier visiteur loguer de cette page
Il te faut maintenir un truc contenant alors l'URL de la page et les 5 derniers visiteurs de cette page.
Tu n'as pas d'autre solution.
Si tu veux mon avis, c'est lourd, et cela ne sert pas à grand chose. Disons que ca a un cout CPU énorme comparé à l'agrément que propose la fonctionnalité.
Si tu as 100 000 pages à loguer, ca fait une table à 500 000 entrées (ce ne sont pas les select qui me font peur, mais plus les update / delete qui feront que tes select seront lockés : après si tu n'as pas beaucoup de visiteur ou de pages à loguer, cela tiendra sans problème) :/
Ou alors, utilise memcache pour faire ce genre de truc histoire de ne pas violer ta base.
c ce que je craignais :/
j'ai fais un tit truc qui a l'air de marcher correctement
<?php
if (session_is_registered("connection")){
if ($_SESSION["login"] != $_GET["user"]) {
$result = mysql_query("SELECT id, last_5, last_4, last_3, last_2, last_1, visite FROM nbr_visite WHERE id='".$id_user."'");
$row = mysql_fetch_array($result);
if ($_SESSION["login"] != $row["last_1"])
if ($_SESSION["login"] != $row["last_2"])
if ($_SESSION["login"] != $row["last_3"])
if ($_SESSION["login"] != $row["last_4"])
$result = mysql_query("UPDATE nbr_visite SET
last_5='".$row["last_4"]."',
last_4='".$row["last_3"]."',
last_3='".$row["last_2"]."',
last_2='".$row["last_1"]."',
last_1='".$_SESSION["login"]."',
visite='".$row["visite"]++."' WHERE id='".$id_user."'");
else
$result = mysql_query("UPDATE nbr_visite SET
last_4='".$row["last_3"]."',
last_3='".$row["last_2"]."',
last_2='".$row["last_1"]."',
last_1='".$_SESSION["login"]."',
visite='".$row["visite"]++." WHERE id='".$id_user."'");
else
$result = mysql_query("UPDATE nbr_visite SET
last_3='".$row["last_2"]."',
last_2='".$row["last_1"]."',
last_1='".$_SESSION["login"]."',
visite='".$row["visite"]++." WHERE id='".$id_user."'");
else
$result = mysql_query("UPDATE nbr_visite SET
last_2='".$row["last_1"]."',
last_1='".$_SESSION["login"]."',
visite='".$row["visite"]++." WHERE id='".$id_user."'");
}
$result = mysql_query("SELECT id, last_5, last_4, last_3, last_2, last_1, visite FROM nbr_visite WHERE id='".$id_user."'");
$row = mysql_fetch_array($result);
$last_5_user = $row["last_5"];
$last_4_user = $row["last_4"];
$last_3_user = $row["last_3"];
$last_2_user = $row["last_2"];
$last_1_user = $row["last_1"];
$visite_user = $row["visite"];
?>
petit explication, il vérifie que l'utilisaeur est connecté au site et que la page qu'il visite n'est pas la sienne
last_5 last_4 etc sont les dernier utilisateur qui ont visité cette page la variable "visite" le nombre total de visite enfin voila peut etre qqch de faux ou à améliorer...
j'attend vos remarque :)
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: