Scénario
Un site web d'images qui possède des fonctions de base telles que le téléchargement, les commentaires, l'appréciation, le suivi des utilisateurs, etc.
Maintenant, j'ai un système de notification de base que j'ai construit très rapidement et qui, en gros, lorsqu'un événement se produit, comme un téléchargement ou autre, il est inséré dans la base de données de l'entreprise. notifications
et a ensuite un read
colonne qui détermine si l'utilisateur l'a vu ou non, simple.
L'exemple actuel de sortie serait quelque chose comme ceci,
John Doe liked Picture of my cat.
Sarah Doe liked Picture of my cat.
Adam Doe liked Picture of my cat.
Sarah Doe liked Picture of my cat.
Henry Doe is now following you.
Ce qui, en gros, est classé par heure d'entrée.
Ce que j'aimerais réaliser, c'est quelque chose de similaire à ce qui suit,
4 users liked Picture of my cat.
Henry Doe is now following you.
J'essaie de mettre à profit mes connaissances moyennes de PHP et le meilleur moyen auquel je pense est de faire quelque chose comme ceci.
$query = mysql_query("SELECT * FROM `notifications` WHERE `read` = '0' LIMIT 20");
$likes = array();
$following = array();
while($row = mysql_fetch_array($query)){
if($row['type'] == "like"){
array_push($likes,$row['id']);
} elseif($row['type'] == "following"){
array_push($following,$row['id']);
}
}
Et ensuite les trier pour les afficher correctement. Mais cela semble encore très compliqué.
Par ailleurs, si quelqu'un a une suggestion à faire, ce serait une bonne idée de mettre en place un algorithme qui les regrouperait même si elles ne se suivent pas directement, par exemple à 5 minutes d'intervalle mais avec des notifications différentes entre les deux.
John Doe liked Picture of my cat.
John Doe is now following you.
Sarah Doe liked Picture of my cat.
Sarah is now following you.
Sur
2 People liked Picture of my cat.
2 New Users are now following you.