rss
[Php / MySql] DISTINCT => Dédoublonnage
par ZIG1
 Fil de Discussions
Statut : Résolu
vendredi 2 décembre 2005 à 15:18:54
Bonjour,

J'ai une liste d'email dans une table où chaque email est associé à une catégorie.
Il se peut que le mail se trouvent là plusieurs foies s'il fait référence à plusieur catégories.

Au moment d'envoier les mail ... je voudrais ne pas en envoier plusieur à une même personne alors j'ai fait

SELECT DISTINCT(email), id ...

Mais ca ne marche pas il continue a tous selectionner !!!
Comment puis-je faire ??

Merci d'avance
..:::ZIG1:::..
Répondre à ZIG1  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le vendredi 2 décembre 2005 à 15:25:02 Fil de Discussions
select distinct(email) from matable;

si tu fais select distinct(email), id, autretruc, autrebidule from matable;
ca ne marchera pas __________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 15:27:44 Fil de Discussions
comment je fais si j'ai besoin de 3 champs ??
J'ai besoin d'id et de flag :D
Y a un autre moyen ? ..:::ZIG1:::..
Répondre à ZIG1

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le vendredi 2 décembre 2005 à 15:36:24 Fil de Discussions
pour un email, tu n'as qu'un id et un seul flag ?
si non, comment veux tu qu'il sache quel id il doit choisir
si oui tu fais :
select distinct (email, id, flag) from ....

enfin je crois, de mémoire __________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 15:47:49 Fil de Discussions
Non, je peux avoir un mail pour différent id et flag (il n'a que 2 valeurs)


Mais je viens d'avoir une idée ...
Je peut faire une requête

select distinct(email) from matable;
Puis Select email, id, flag FROM matable Where email=email
Ca pourrait marcher, non ??
..:::ZIG1:::..
Répondre à ZIG1

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le vendredi 2 décembre 2005 à 15:56:01 Fil de Discussions
oui ca ca marche mais ca fait pas mal de requetes...
mais je ne vois pas bien comment tu fais ton filtre.
tu veux tous les email de ta table ou seulement certains ?

tu es sur que ta table est correctement constituée ? bizarre d'avoir la meme @ email plusieurs fois dans la meme table ... __________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 16:08:24 Fil de Discussions
Je sais ... effectivement ...
Mais je ne sais pas comment faire autrement ... pour l'instant ...

Pour l'instant je géres mes catégorie avec une liste déroulante ... mais comment faire pour le faire par case à cocher et donc avoir un nombre illimité de catégories par mail ...

Et pourvoir faire des recherches par catégories ...
Je dois pouvoir classer mes mails par catégories et dans ce genre de cas pouvoir les faire apparaitre plusieurs ... dans chaque catégories concernés ....
Répondre à ZIG1

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 16:21:36 Fil de Discussions
j'ai changé mes données pour avoir des données du type
id email categorie1|categorie3|categorie4|

Mais quand je veux afficher mes données classé par catégories ma requête ne fonctionne plus ...

Comment faire ??
..:::ZIG1:::..
Répondre à ZIG1

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le vendredi 2 décembre 2005 à 16:30:07 Fil de Discussions
hum, la , a froid, sans ton projet devant les yeux, c'est un peu difficile de tout comprendre ...
:-( __________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 16:38:22 Fil de Discussions
Ok,

J'ai une table avec id, mail, flag, categorie
si j'entre plus d'un numéro dans "catégorie", je dois les insérer comme suit 1|2|4|6 n'est-ce pas ?

Si tel est le cas comment puis je faire une requête en filtrant sur catégorie.
Cet "élèment" que nous venons de rentrer doit aparaître sous les catégorie 1,2,4 et 6 comment faire cette requête ??

..:::ZIG1:::..
Répondre à ZIG1

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par bacchuss, le vendredi 2 décembre 2005 à 16:50:05 Fil de Discussions
quand tu dis plus d'un numero dans "categorie", cela veut dire que tu inseres plusieurs enregistrements dans ta table
genre:
id   mail          flag         categorie
1  toto@..        0                   1
1  toto@..        0                   2
1  toto@..        0                   4

et non pas
id   mail          flag         categorie
1  toto@..        0                   1,2,4


__________________________________________
01001001110101001010100101 et plus si affinités
Répondre à bacchuss

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 16:58:20 Fil de Discussions
Si je fais comme dans ta première proposition, je vais me retrouvé avec le même souci de doublon au niveau des mails ...
Et quand j'écrirait ... j'enverrai un certain nombre de mail à la même personne ... et c'est ca que je veux éviter ..:::ZIG1:::..
Répondre à ZIG1

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par B@|-|@N, le vendredi 2 décembre 2005 à 17:00:41 Fil de Discussions
Rien compris du tout à ton explication ^_^.

Je vois un truc qui ne va pas dans ta table, tu as une relation n-n entre deux entités, catégorie et email. Une catégorie peut contenir 0 ou plusieurs mails et un mail peut appartenir a 0 ou plusieurs catégories.

je te propose donc de créer 3 tables dont une qui sera la relation entre catégorie et email.

############
#tab_categorie #
#-----------------#
#id_categorie # <- clef primaire
#lib_categorie #
############

############
# tab_mail #
#-------------------#
#id_mail # <- clef primaire
#lib_mail #
############

###############
# tab_mail_categorie #
#------------------------#
# id_mail # _
# id_categorie # _|- clef primaire sur les deux champs
###############

Ensuite pour le code, comme je n'ai pas bien compris ce que tu veux je dirais : tu sors tous tes mails qui appartiennent au moins à une catégorie et tu leur envoies ton message.

Autrement dit :
-----------------
SELECT DISTINCT(lib_mail)
FROM tab_mail, tab_mail_categorie
WHERE tab_mail.id_mail=tab_mail_categorie.id_mail

Bahan Close the world.||.txen eht nepO
Répondre à B@|-|@N

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 17:07:24 Fil de Discussions
je suis un peu dans ce cas ...
dans le sens où je fonctionne déjà comme ca avec les catégories

mais je ne comprend pas ta table
###############
# tab_mail_categorie #
#------------------------#
# id_mail # _
# id_categorie # _|- clef primaire sur les deux champs
###############

en fait quand j'entre un nouveau contact je dois
entrer son mail dans tab_mail,
choper son id
entrer dans tab_mail_categorie idMail et idCatégorie

C'est ca ??

..:::ZIG1:::..
Répondre à ZIG1

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par B@|-|@N, le vendredi 2 décembre 2005 à 17:14:04 Fil de Discussions
Quand tu entres un nouveau contact, tu vas lui donner une id_mail unique ainsi que lui attribuer une ou plusieurs catégories.

Si tu lui attribues disons 3 catégories différentes, dans la table tab_mail_categorie, tu auras 3 enregistrements.

Exemple :
notre nouveau contact est toto@totomail.com qui aura l'id suivante : 1
Les catégories qui lui sont attribués sont : bubu (1), tutu (2) et lulu (3)

Lors de la saisie de ce nouveau contact, il va falloir insérer dans la table tab_mail_categorie les enregietrements suivants :

1 - 1
1 - 2
1 - 3

L'intéret c'est que tu peux tranquillement changer l'adresse mail de toto, tant que son id ne change pas tu n'auras pas à tout changer dans la table-relation entre mail et catégorie.

Hum hum. Suis-je clair ? ^_^

Bahan Close the world.||.txen eht nepO
Répondre à B@|-|@N

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 17:19:44 Fil de Discussions
Mais l'idMail ne doit pas être auto-incrémenté
ou
tu fais une recherche avant d'entrer les relations ?? ..:::ZIG1:::..
Répondre à ZIG1

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par B@|-|@N, le vendredi 2 décembre 2005 à 17:23:17 Fil de Discussions
Yep les identifiants des tables tu peux leur mettre un auto-increment.

Dans ce cas, quand tu viens d'insérer un contact, tu prends l'id le plus haut et c'est bon. (Basiquement, hein ? Le mieux est de faire des tests quand même.)

Mais sinon ce que tu dis est même mieux. Faire une recherche après l'insertion (vérifier qu'elle s'est bien déroulé) est une très bonne idée.

Tu en ressorts l'id_mail que tu injectes ensuite dans tab_mail_categorie avec les id_categorie associées.

Bahan Close the world.||.txen eht nepO
Répondre à B@|-|@N

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le vendredi 2 décembre 2005 à 17:27:20 Fil de Discussions
Mais par contre je ne peux plus les insérer simplement avec un *.sql
ou tout autre export ... il va falloir absolument passer par l'application !!
..:::ZIG1:::..
Répondre à ZIG1

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par B@|-|@N, le vendredi 2 décembre 2005 à 17:36:18 Fil de Discussions
Mais par contre je ne peux plus les insérer simplement avec un *.sql

Si bien sûr.

Exemple, une fois que tu as insérée tes id par des requêtes de type INSERT.
------------
SELECT id_mail, id_categorie 
FROM tab_mail, tab_categorie 
WHERE lib_mail='toto@totomail.com' 
AND lib_categorie='lulu'
INTO TABLE tab_mail_categorie;

Bahan Close the world.||.txen eht nepO
Répondre à B@|-|@N

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ZIG1, le lundi 5 décembre 2005 à 14:28:59 Fil de Discussions 
Allo,

Suite à une longue reflection ... il n'y aura pas de doublon d'email ... Dans le champ IdCategories ... il pourra y avoir plusieurs id et je fait un select avec Like ....

Merci pour l'aide à la reflexion :D
..:::ZIG1:::..
Répondre à ZIG1
Discussions pertinentes trouvées dans le forum
21/06 11h07textarea (php/mysql)Webmastering22/06 21h264
17/06 03h46choisir l'ordre d'affichage PHP/ MYSQLWebmastering18/06 07h534
16/06 15h13Au secouuuuuurs(question sur PHP/Mysql)Webmastering16/06 15h5910
13/06 10h59[PHP][MYSQL]Webmastering13/06 15h1723
Plus de discussions sur « [Php / MySql] DISTINCT => Dédoublonnage » Discussion en cours Discussion fermée Problème résolu
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.51bMySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Php / MySql] DISTINCT => Dédoublonnage »
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide