|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2006 Messages : 54 ![]() |
Bonjour,
EDIT: J'ai modifié ma requête et j'ai essayé de joindre la table "notifications" dont le champ "reference" est l'id du thread (conversation privée) et le champ "user" est un string représentant la personne à qui est adressée la notification. J'aimerais que pour chaque thread il y ait le nombre de notifications associées. L'idée c'est que le membre (dans la requête: n°44) qui visite sa boite de messages privés voie tout de suite combien de nouveaux messages il y a dans chacun des sujets de conversation. Ma requête fonctionne sans le count() sur la table notifications... Code :
Nb: id_notif=2 représente une notification de type "message privé" Merci pour votre aide ------------------------------------------------------------------------------------------------ Je code un système de messages privés pour mon site, affichant les résultats sous forme de sujets de conversation (threads) à la manière de gmail. J'ai les tables: - mp : messages privés - mp_thread : listing des conversations (comprenant des messages privés) - user : les membres du site Table mp: mp_id thread mp_expediteur mp_receveur mp_titre mp_text mp_time mp_lu Table mp_thread: thread_id thread_title user_id thread_time thread_first_post thread_last_post Table user id login J'aimerais lister les sujets de conversation en indiquant: - le nombre de messages pas encore lus par l'utilisateur - le titre de chaque conversation - la date du dernier message posté dans la conversation - la possibilité de supprimer une conversation (comme sur gmail: si je supprime ça ne veut pas dire que la conversation sera aussi supprimée pour l'autre personne de la conversation) - les conversations avec messages non-lus sont placées en haut du listing - quand on clique sur le titre d'une conversation, on arrive sur une page listant tous les messages de la conversation et on est dirigé automatiquement sur le premier message non-lu. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 669 ![]() |
bonjour,
comment sait-on qu'un message est nouveau ? |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2006 Messages : 54 ![]() |
Bonjour,
Un message est nouveau lorsqu'une notification est ajoutée dans la table "notifications" pour l'utilisateur "user" concerné et que le champ "lu" est à 0. Cette table est caractérisée par les champs: -id en auto increment -id_notif: (le type de la notification: 1=commentaire de news, 2=message privé) -user: la personne à qui est adressée la notification - reference: ici le thread (sujet) qui a généré une notification car on y a ajouté un message privé - lu : si la notification a déjà été lue ou pas par la personne "user" - date : date de création de la notification -dateLu: quand la notif a été lue La création des notifications fonctionne, c'est le traitement des données qui me pose problème. Merci |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 669 ![]() |
Connaissez-vous le group by ? :http://sqlpro.developpez.com/cours/sqlaz/ensembles/
C'est ce qu'il vous faut pour traiter votre demande simplement. Par contre une chose m'intrigue, vous dites : Citation:
edit: au vu de la colonne id_notif je dirai que oui, du coup j'me demande si vous n'avez pas modélisé tout ça un peu à l'arrache ? Typiquement votre référence devrait être une foreign key sur la table des mp_thread (son id) ou alors via héritage ... bref si vous ca vous interesse passez par le forum de modélisation. |
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2006 Messages : 54 ![]() |
Merci punkoff pour votre réponse et excusez-moi pour le retard. Je n'avais pas spontanément pensé à utiliser group by malgré que je connaissais. Ma messagerie privée fonctionne maintenant après avoir réglé de nombreux autres bugs
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com