Realiser un systeme de messages
Fermé
MaitreJimVT
-
28 sept. 2016 à 05:55
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 30 sept. 2016 à 08:55
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 30 sept. 2016 à 08:55
A voir également:
- Realiser un systeme de messages
- Restauration systeme - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Comment refaire le système d'un ordinateur - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Forum Mail
4 réponses
nagaD.scar
Messages postés
4272
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 janvier 2023
252
30 sept. 2016 à 08:55
30 sept. 2016 à 08:55
Salut,
Il n y a pas de solution unique. Voila un petit exemple simpliste:
table des clients
table des fils (ou un topic)
table des Messages
ou pourrai aussi avir une table de souscription au fil pour recevoir des notification par exemple.
Donc du coup au select on ferai
Pour récupérer tout le fil.
Mais ce n est qu un exemple avec un minimum de données, à toi de trouver une structure qui correspondra réellement à ce que tu veux faire.
Naga
Il n y a pas de solution unique. Voila un petit exemple simpliste:
table des clients
<T_USER>
USR_ID
USR_NAME
table des fils (ou un topic)
<T_FIL>
FIL_ID
FIL_NAME
USR_ID //creator
table des Messages
<T_MESS>
MESS_ID
CONTENT
USR_ID
FIL_ID
ou pourrai aussi avir une table de souscription au fil pour recevoir des notification par exemple.
Donc du coup au select on ferai
SELECT f.FIL_ID,m.MESS_ID,m.CONTENT,u.USR_ID,u.USR_NAME FROM T_FIL f JOIN T_MESS m ON f.FIL_ID = m.FIL_ID JOIN T_USER u ON m.USR_ID=u.USR_ID WHERE f.FIL_ID={fil_id_cherché} ORDER BY m.MESS_ID
Pour récupérer tout le fil.
Mais ce n est qu un exemple avec un minimum de données, à toi de trouver une structure qui correspondra réellement à ce que tu veux faire.
Naga
spylller
Messages postés
395
Date d'inscription
dimanche 1 mars 2015
Statut
Membre
Dernière intervention
11 juillet 2019
28
28 sept. 2016 à 08:06
28 sept. 2016 à 08:06
Salut,
Quand on clique sur la personne ça nous ouvre la conversation avec la personne et on affiche tous les messages avec une boucle, en SELECT contenu WHERE received_id = nom de la personne.
Je pense un truc dans ce genre
Quand on clique sur la personne ça nous ouvre la conversation avec la personne et on affiche tous les messages avec une boucle, en SELECT contenu WHERE received_id = nom de la personne.
Je pense un truc dans ce genre
nagaD.scar
Messages postés
4272
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 janvier 2023
252
Modifié par nagaD.scar le 28/09/2016 à 11:30
Modifié par nagaD.scar le 28/09/2016 à 11:30
Salut,
Vu ta table actuelle, tu n est pas en mesure de gérer un fil de discussion vu qu il n y a pas de lien.
Ce que cette table peu te permettre de faire c'est seulement permettre à deux personnes de discuter dans un fil unique (donc deux acteurs seulement avec un fil unique par couple).
Si tu veux juste selectionner un fil, tu ferra:
qui renverra la liste des message par ordre d insertion (donc chronologique).
Par contre le nom des champs est mal choisi : d'une part un receiver et un destinataire, c'est la même chose (sender et receiver serai bien plus approprié), et dans le cas d'une conversation ca serai plutot des acteurs.
Après il faut voir l insertion, il faudra peu être adapter la requête de select, par exemple faire :
naga
Vu ta table actuelle, tu n est pas en mesure de gérer un fil de discussion vu qu il n y a pas de lien.
Ce que cette table peu te permettre de faire c'est seulement permettre à deux personnes de discuter dans un fil unique (donc deux acteurs seulement avec un fil unique par couple).
Si tu veux juste selectionner un fil, tu ferra:
SELECT ID,contenu,receive_id,posted_at FROM {nom de la table} WHERE receive_id = {id du receiver} AND dest_id = {id du destinataire} ORDER BY ID
qui renverra la liste des message par ordre d insertion (donc chronologique).
Par contre le nom des champs est mal choisi : d'une part un receiver et un destinataire, c'est la même chose (sender et receiver serai bien plus approprié), et dans le cas d'une conversation ca serai plutot des acteurs.
Après il faut voir l insertion, il faudra peu être adapter la requête de select, par exemple faire :
SELECT ID,contenu,receive_id,posted_at FROM {nom de la table} WHERE receive_id in ({id acteur 1},{id acteur 2}) AND dest_id in ({id acteur 1},{id acteur 2}) ORDER BY ID
naga