IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Supprimer des pseudo doublons dans une liste déroulante


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 13
    Points
    13
    Par défaut [Tableaux] Supprimer des pseudo doublons dans une liste déroulante
    Bonjour à tous,
    Mon problème est le suivant : j'ai crée une liste déroulante importée depuis un bdd.
    Lors de ma selection j'obtiens par exemple :
    -papa (le vrai)
    -papa (le facteur)
    -maman
    -moi

    Je voudrais obtenir :
    -papa
    -maman
    -moi

    Est ce possible directement dans ma requete sql ? Ou dois je passer par un tableau qui va comparer mes valeurs ?

    En esperant que ce soit possible directement par les requetes sql

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    papa le vrai papa le facteur lol pa tre clair tous ca si je comprend bbien tu as des doublons dans ta liste déroulante
    Stay in Bed .. Save Energy

  3. #3
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    c'est plus facile avec du code et des exemples de données
    sinon : select distinct (membre_famille) from famille where ta_condition

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Oui en fait dans ma liste j'ai des pseudo doublons que DISTINCT ne gère pas car ils ne sont pas exactement identique.

    Si ce n'est pas clair, j'ajouterais ma tentative (désastreuse) de code et des explications.
    edit : en me relisant et en vous lisant, mes tentatives d'explications ne sont pas clair .

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT membre FROM famille WHERE ....
    Comment dire dans une requete sql qu'il faut comparer les valeurs, ne pas afficher celles qui se ressemblent ( ou qui possèdent un mot en commum ) mais à la place afficher ce mot.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    ou select membre_famille from famille group by membre_famille
    Stay in Bed .. Save Energy

  6. #6
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    mets des données contenus dans ta table avec sa structure STP

  7. #7
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    au vu de ton edit de 16h29 je te dirai bien de reconstruite ta BDD...

    le tag DISTINCT enlève sémantiquement ce qui est rigoureusement identique (enfin en laisse un sur la totalité ), donc je ne vois pas trop ce que tu peux faire si jamais dans ta CLAUSE WHERE tu mettais un like'%papa%' car derrière le DISTINCT te fera toujours apparaître
    -papa (le vrai)
    -papa (le facteur)

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Ma table me donne ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Admin (impact administration)
    Admin (impact client)
    Admin (pas d'impact)
    Autres
    Passerelles (Dégradation)
    Passerelles (Inaccessibilité)
    Service_Réseau
    TP
    Transmissions, Ecoulement du traffic (pas d'impact...
    Transmissions, Ecoulement du trafic (ralentissemen...
    et donc ma liste me propose les 10 choix, or je ne voudrais qu'il ne me propose que :
    -Admin
    -Autres
    -Passerelles
    -Service_Réseau
    -TP
    -Transmissions

    afin que dans un deuxieme temps que l'utilisateur précise sa demande dans une seconde liste déroulante selon sa réponse à la premiere liste.

    Je sens mes explications très limites mais je n'arrive pas à faire mieux désolé

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    La structure de la BDD est foireuse là...

    Il va probablement falloir jouer avec DISTINCT et LIKE comme suggéré plus haut, mais là concrètement je vois pas trop...

    Ou alors il faut faire ça en PHP, tu récupères tout ce qu'il y a avant la première parenthèse ouvrante, tu prends un tableau temporaire et tu regardes si c'est dans le tableau ou pas avant de mettre dans ta liste (et l'ajouter au tableau le cas échéant).
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  10. #10
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    et pourquoi ne découperais tu pas ton champ en 2:
    champ principal et champ secondaire

    ce serait plus facile

    sinon tu peux toujours découper le résultat de ta requête sur le 1er mot trouvé et ensuite tu fais un traitement et tu généres un tableau (array) avec ces valeurs dont tu enlèves les doublons

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Malheureusement, la bbd est telle qu'elle est, je ne peux pas y toucher.

    Aie, aie je sens que ca va pas être simple.

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par WhyMee
    Malheureusement, la bbd est telle qu'elle est, je ne peux pas y toucher.

    Aie, aie je sens que ca va pas être simple.
    J'ai édité ma réponse (mais Mussara a eu la même idée )
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  13. #13
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    un truc du genre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT(SUBSTRING(membre_family FROM 0 FOR (POSITION('(' IN membre_family)))) FROM FAMILY
    sans certitude du tout que ça fonctionne, j'essaies de donner une piste....

    EDIT : remplacement de TO par FOR dans substring, j'ai testé sur ma base postgresql et ça fonctionne

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Non je crois que je vais tricher et toucher quand même à ma bdd en rajoutant un champs ( mais chut j'ai pas le droit normalement).

    Ca va être vraiment le bordel sinon

    Merci à tous pour ces précieux éclaircissements.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2009, 10h27
  2. [MySQL] Supprimer la répitition des résultats identiques dans une liste déroulante
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 13/03/2008, 17h33
  3. [MySQL] Comment éviter des doublons dans une liste déroulante ?!
    Par L'anonyme_connu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/03/2008, 11h14
  4. Doublon dans une liste déroulante
    Par Lenezir dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2008, 16h26
  5. Eviter doublon dans une liste déroulante
    Par Joachim49 dans le forum Excel
    Réponses: 4
    Dernier message: 21/05/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo