afficher les 5 dernier utilisateur d'une page

Répondre
subrally
le 10/07/2009 à 15:56
subrally
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()
LA GLOBULE
le 10/07/2009 à 16:13
LA GLOBULE
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é.
subrally
le 10/07/2009 à 16:42
subrally
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
LA GLOBULE
le 10/07/2009 à 17:24
LA GLOBULE
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.
subrally
le 10/07/2009 à 17:37
subrally
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
LA GLOBULE
le 10/07/2009 à 18:17
LA GLOBULE
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.
subrally
le 17/07/2009 à 12:22
subrally
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 :)
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours