s'il vous plait qui peux m'expliquer le déroulement d'un système de notification comme sur facebook par exemple : l'administrateur publie une article et chaque membre de site reçoit une notification lors de sa connexion, j ai deux table article et membre

Merci d'avance

8 réponses


Vallyan
Réponse acceptée

j'ajoute une article je mettre une variable de type array qui va sélectionner tous les id des users puis une foreach qui parcouru cette variable dedans j'effectue une requête d'insertion dans la table notif.
Si tu as 1000 users, tu fais 1000 requete en écriture ? effectivement ce n'est pas une bonne solution.

  • Fais ta table user_article (deux champs suffisent, en fait)
  • Lorsque tu créé un nouvel article, tu ne fais rien d'autre (pas de création d'entrés dans la table user_article).
  • Lorsqu'un user se connecte tu fais un select des articles qui sont dans ta table article, mais qui ne sont pas associés a cet user_id en particulier dans la table user_article
  • Lors d'un clique sur une notif, tu ajoutes (en ajax par exemple) une entrée pour le couple article / user dans la tabe user_article

Bonjour a-ahmed,

Si tu veux mettre en place un système de notifications, il faudra utiliser le JavaScript.Je te conseille de regarder sur internet différents tutoriels, ou tout simplement de tutoriel de Grafikart: ici

Med-
Auteur

merci Arrows78 , Brandon-xprodeur mais mon problème c'est du cote mysql par exemple si je publie une article je vais envoyer a chaque membre de site une notif et lorsque le user se connecte et clique sur cette notif cette dernière ne s'affiche pas ultérieurement je veux comment savoir a a vu l'article puisque j'ai deux table article et membre.

Deux possibilitiés:

  • Tu compares la date de derniere connexion de ton user a la date de création de la notif. Si la notif est plus récente: il ne l'a pas encore vue et tu l'affiche. Sinon tu ne l'affiche pas.

  • Tu créés une table notifs_users (n..n) de bouléens qui garde en mémoire qui a vu quelle notif.

@Vallyan, @a-ahmed, le problème de cette méthode est de savoir comment est afficher la notification.
Que se passe-t-il donc si:

  • Une notification est créée
  • Un utilisateur se connecte ensuite (sa dernière connexion est donc plus ancienne que la notif)
  • Il ne regarde pas la notification maintenant
  • Ensuite il se déconnecte
  • Et un autre moment, il se reconnecte (sa dernière connexion est plus récente que la notif, mais il ne l'a toujours pas vu)

Ainsi a-ahmed, il faut que tu choisisses vraiment comment afficher ton système de notification. Est-ce que l'utilisateur doit cliquer sur la notification pour la voir, ou pars-tu du principe que si il est connecté, il l'a voit ?

Good point.
S'il doit impérativement cliquer pour valider la notif, alors il faut passer par la table user_notifs (et non pas par la date de connexion), et envoyer une requete ajax suite au clique pour faire un update de la table.

Med-
Auteur

je vous remercier tous
avant de lire les derniers messages de ce sujet j'ai réfléchi d'ajouter un table notf qui contient id_article id_membre et lorsque j'ajoute une article je mettre une variable de type array qui va sélectionner tous les id des users puis une foreach qui parcouru cette variable dedans j'effectue une requête d'insertion dans la table notif.
et lorsque le user se connecte je teste si son id se trouve dans la table notif si oui j'affiche la notification s'il clique dessus une requête pour supprimer la ligne dans la table de notif.
cette solution je pense est efficace mais j'ai l'impression qu'elle n'est pas pro

Med-
Auteur

Merci pour l'aide @Vallyan