Page 1 sur 1

ignore list

Posté : 02 oct. 2006, 23:49
par jibé001
Salut,

je viens de finir de coder un systeme de messagerie privée pour un site et la il me reste une chose à faire, l'ignore liste.
Je ne demande pas que vous me donniez le code deja tout fait mais doit on créer un table spéciale pour cela?
Par exemple une table a 3 champs:
(id, id_pseudo, id_de_la personne_a ignorer). Pensez vous que cela est bien?
Merci.

Posté : 03 oct. 2006, 09:11
par fred9999
salut
oui je suppose
avec par exemple

id
id_1ere personne
id_2eme personne

la première personne étant celle qui ne veut plu se faire harceler
par la 2eme :lol:

Posté : 03 oct. 2006, 09:46
par Ryle
Ca me parait l'idéal également :)

A la limite tu pourrais même te dispenser de l'id, puisque ton couple (id_pseudo, id_ignore) sera unique (un utilisateur ne va pas ignorer une même personne plus d'une fois), tu peux donc l'utiliser comme clé primaire ;)

Posté : 03 oct. 2006, 09:58
par fred9999
oui c'es vrai mais en cas de suppression c'est peut etre plus facile non???

après c'es au bon vouloir de chacun !! lol

Posté : 03 oct. 2006, 10:40
par Ryle
Bah en cas de suppression, au lieu de l'identifiant de la ligne, tu vas passer l'identifiant de l'utilisateur et celui de la personne qu'il ignore, c'est pas spécialement plus compliqué :)

Disons que c'est plus merisien que de ne pas s'encombrer de données inutiles, mais cela dit, je suis d'accord avec toi, faut avant tout être à l'aise avec son code :)

Posté : 03 oct. 2006, 10:42
par fred9999
moi j'aime pas les merises

a part dans un bocal avec de la goutte :lol:

bon est ce résolu??

Posté : 03 oct. 2006, 11:33
par zeus
Faut pas être pressé, l'auteur originel n'a pas encore répondu ... ;)

Sinon, je pense que c'est plus simple de supprimer une ligne avec id_personne et id_personne_banni.

Code : Tout sélectionner

DELETE FROM table WHERE id_personne = AND id_personne_banni =
Comment est-ce que tu obtiendrais l'id de l'enregistrement sinon ? En sélectionnant l'id_enregistrement a l'aide de id_personne et id_personne_banni ... :roll:

Code : Tout sélectionner

SELECT id_enregistrement FROM table WHERE id_personne = AND id_personne_banni = DELETE FROM table WHERE id_enregistrement =

Posté : 03 oct. 2006, 11:36
par fred9999
en fai je suis pas sur
si par exemple tu fais une liste (noire) de tes contacts
avec un lien pour la suppression

ex: <a href="mapage?numsuppr=$numducontact">

moi dans ce cas la je préfère passer une seule variable lol

Posté : 03 oct. 2006, 11:44
par zeus
Mais pour construire ces liens, tu doit tout de même obtenir l'id de la personne a virer et tu as l'id du membre puisqu'il est connecté

Donc, a supposer que l'id du membre est en session, le lien ressemblera à ça :
<a href="mapage?id_banni=$id_personne_banni"> 

Posté : 03 oct. 2006, 11:50
par fred9999
oui c'es vrai aussi

moi généralement

je fai ma recherche ds la base
ex select * from matable where ex_id=tant

puis

tant que il ya des lignes
{
j'affiche mon lien
}

ensuite pour la suppression j'ai pas le session id a récup !!!

c'es peut etre juste un flemmingite aigue que j'ai récupérée :lol:

Posté : 03 oct. 2006, 12:07
par zeus
Ca revient au meme sachant que j'aurais fait le même select mais j'aurais passé des parametre différents.

Après, c'est une question de gout ... comme tu le disais plus haut ;)

Posté : 03 oct. 2006, 12:10
par fred9999
:idea: un petit message a cux qui aime rigoler :wink:
allez voir www.bouletcorp.com moi je peut plu m'en passer !! :lol:

Posté : 03 oct. 2006, 12:16
par sadeq
moi j'aime pas les merises

a part dans un bocal avec de la goutte :lol:
Ce n'est pas Merise qui fait le bon analyste mais c'est le bon analyste qui fait Merise.

Ton idée rentre tout à fait dans la logique (même si tu n'es pas merisien) une personne dispose d'une liste de N personnes bannies.

Ceci se modélise :
Personne --- banni (1, n) ---> Personne
et
Personne --- est bannie (0,n fois) par ---> Personne

Ce conceptuel donne une entité "Personne" associée à elle même par l'association "banni" qui représente le fait qu'une personne puisse bannir plusieurs autres personnes.

Le modèle logique lui fait donc apparaitre une nouvelle table "banni" qui représente cette association à occurences multiples.

En fait c'est une table de références (clé étrangères) qui va contenir les couples de personnes dont un banni l'autre.

On sait alors que la personne qui banni plusieurs autres personnes aura plusieurs occurences de son id dans cette table et puisqu'il ne peut bannir une même personne plusieurs fois, le couple de références est un index unique qui identifie d'une façon unique une occurence de "banni" sachant en plus que celui qui banni ne peut pas bannir lui même, les valeurs des 2 rôles de l'association sont alors différentes pour toute occurence.

Le MLD final:
  • Personne (id clé primaire, ...)
    Banni (id_qui_banni clé étrangère de Personne.id,
    id_banni clé étrangère de Personne.id,
    index unique (id_qui_banni, id_banni)
    contrainte (id_qui_banni != id_banni) )

Traitements:

Ajout:
Pour bannir 3 personnes p1, p2 et p3, la personne X doit remplir sa liste des "banni" :

Code : Tout sélectionner

insert into banni (id_qui_banni, id_banni) values ('X', 'p1'); insert into banni (id_qui_banni, id_banni) values ('X', 'p2'); insert into banni (id_qui_banni, id_banni) values ('X', 'p3');
Consultation:
Pour afficher la liste des personnes bannies par X :

Code : Tout sélectionner

select id_banni from banni where id_qui_banni = 'X' order by id_banni
Supprimer:
Pour supprimer la personne p1 de la liste des bannis de X :

Code : Tout sélectionner

delete from banni where id_qui_banni = 'X' and id_banni = 'p1'
Pour supprimer tous les bannis de la liste de X (=> supprimer la liste de X):

Code : Tout sélectionner

delete from banni where id_qui_banni = 'X'
Pour supprimer p1 de toutes les listes des bannis quelque soit le propriétaire.

Code : Tout sélectionner

delete from banni where id_banni = 'p1'

Posté : 03 oct. 2006, 12:18
par fred9999
hola hola

je faisais juste une blague : j'en ai bouffer du merise en cours :wink:

mais aujourd'hui je travaille plutot à l'instinct :lol: