tt d'abord bonsoir a vous toutes et tous,

ma question est assez clair est simple je cherche a savoir le principe (méthodologie) suivie pour désigné a chaque utilisateur les articles qu'il n'a pas encore visité

merci :)

4 réponses


Grafikart
Réponse acceptée

Ma façon de faire :

  • Chaque post a une date de création
  • Chaque utilisateur a une date "lastlogin" qui permet de savoir sa date de dernière connexion
  • Sur le site si lastlogin date de plus de 10 minutes alors je check tous les article ayant une date supérieure à celle du lastlogin utilisateur et je stocke les informations dans un tableau dans la Session, et je met à jour l'information lastlogin à la nouvelle date.
centos
Auteur

un tableau d'activité pour chaque utilisateur une fois un article est ajouté on fait l'update c'est un pt pénible d'autre idée

Oui, sur le site il affiche plutôt ce qu'il s'est passé "en votre absence" donc depuis la dernière visite. Voir les articles non lus, il faudrait soit créer une nouvelle table "articles_lus" ou tu aurais id_article et id_user, tu entrerais dans cette table par exemple si l'user 83 affiche l'article 19, tu vérifie le couple id_user = 83 et id_article = 19. Si tu obtient un résultat, alors tu ne fait rien, si non, tu entre un nouvel enregistrement.

Tu dois veiller à empêcher les doublons id_user/id_article. Egalement pourquoi pas, nettoyer régulièrement la table, en supprimant les id_user des membres qui ne le sont plus par exemple.

Autre méthode, mais peut être plus gourmande, ajouter un champ liste_articles_lus dans ta table qui contient les information des membres, et avoir dans ce champ, les id séparés par des virgules par exemple. Ainsi, si la personne a lu les articles 1,3,5,19,45, tu peux facilement récupérer ce champ et utiliser un FIND_IN_SET par exemple (voir fonction mysql). Cette fonction permet de tester la présence d'un élément dans une chaine, genre FIND_IN_SET('5','1,3,5,19,45') te renverra la valeur 3, et renverra 0 ou NULL si il n'y a pas de résultat.

ça te donne des pistes?

centos
Auteur

merci pour vos efforts

la solution de Grafikart me plait surtout qu'il est facile a implémenté