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

PHP & Base de données Discussion :

Menu deroulant dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut Menu deroulant dynamique
    Bonjour à tous et à toutes !

    Voilà ma question; J'ai sur mon site un formulaire permettant de faire des recherches dans ma base de données (base d'annonces). Le formulaire de recherche comprends des champs simples que l'utilisateur doit remplir. J'aimerai que ces champs soient plutôt des menus déroulants proposant les valeurs déjà enregistrées en base.
    Comment faire ?

    Merci d'avance pour votre aide !

  2. #2
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    Bonjour !

    Le moins qu'on puisse dire c'est que t'es plutôt secret(e) dans ta question

    Il faudrait nous en dire un peu plus sur ta base de données pas exemple...
    Est-ce que ce que tu souhaites voir apparaître dans ta liste déroulante est stocké dans une table (à part) ? Oui/Non/Je sais pas ?
    Est-ce que, est-ce que, est-ce que ? Vois-tu !?

    On veut des infos

  3. #3
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    Bonjour, j'ai peut être été un peu vague pardon !
    Alors prenons un cas concret !
    Dans ma base, il ya des annonces stockées. Parmis les informations il y a par exemple le champ "ville".
    Ce que je voudrais c'est que lorsqu'une personne effectue une recherche dans les annonces elle puisse le faire par ville, et plutot que lui proposer un champs vide je prepfererais lui proposer un menu deroulant proposant seulement les villes deja enregistrées en base. En gros c'est pour lui eviter de chercher des annonces à lyon si il n'y a que des annonces à Paris et Marseille.

    Ai je été clais ce coup là ?

    Merci d'avance pour votre aide !

  4. #4
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    ok, ok, ok

    Ce que je vais proposer va être un peu simple à toi de voir si tu veux quelque chose d'un peu plus fin..

    On va partir de ton exemple : une table contenant des annonces, chaque enregistrement ayant un champ renseignant la ville

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $req = 'SELECT ville FROM table GROUP BY ville';
    $res = mysql_query($req) or die(mysql_error());
    echo '<select name="___">';
    while($enr = mysql_fetch_assoc($res)) {
        echo '<option value="',$enr['ville'],'">',$enr['ville'],'</option>';
    }
    echo '</select>';
    ceci dit cette soluce pose un problème... ou plutot je dirais que la conception de la bdd pose un problème pour ce type de besoin... SAUF si les personnes qui ont rentré ces annonces disposaient d'une liste déroulante avec les villes dedans... car sinon les utilisateurs ont pu faire des fautes dans les noms de villes... donc il se peut que tu ais du 'Pari' et du 'Paris' par exemple... et y'a aussi un truc faudrait que tu regardes si ce champ ville est en ci (case insensitive) ou cs (case sensitive) çà peut jouer çà aussi mais j'ais plus le temps de dire plus de choses là je dois aller manger

  5. #5
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    Merci pour cette solution très efficace. Je viens de la tester, ça fonctionne !
    J'ai cependant effectivement le problème que tu avais pressenti ....Paris PARIS PAris Pari paris ....etc.
    Le champ pour le depot d'annonce est effectivement libre ! Mais comment trouver une liste exaustive des communes de france ? ( il y en a 36000 en plus !) ca ferait un sacré menu deroulant ça non ?
    Il faudrait sinon avoir une première liste pays , puis département du pays, puis communes du département séléctionné....mais je ne sais pas faire ça ...ça peut se faire simplement ?
    Sinon tu vois une autre solution ?

    Merci beaucoup pour ton aide !

  6. #6
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Bonsoir,

    1) pour Huntress : pourquoi pas "select distinct ..." au lieu d'un "... group by ...".
    2) pour Heteroclite : possibilité de simplification : stocker les entrées des utilisateurs en majuscule ou en minuscule dans la base, ce sera déjà un point de discorde annulé.

  7. #7
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    Ah... parce qu'en plus y'a pas que la France o_o'

    Ben pour les pays c'est clair tu pourrais avoir une table, par contre pour les régions, provinces et autres communes... c'est un cou à perdre des dents faut donc faire attention...
    En terme de prog c'est relativement simple. Pour la BDD c'est simple mais çà doit être méga chiant.

    Un truc qui peut peut être t'aider si tu t'engages dans cette voie : http://fr.wikipedia.org/wiki/Listes_...unes_de_France

  8. #8
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    papyphp : çà m'est venu comme çà

    Ceci dit il apparait qu'ils ne sont pas tous les 2 égaux en terme de ressources

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Groupe By : 1  	SIMPLE  	billets  	ALL  	NULL  	NULL  	NULL  	NULL  	31  	Using temporary; Using filesort
    Distinct : 1  	SIMPLE  	billets  	ALL  	NULL  	NULL  	NULL  	NULL  	31  	Using temporary
    Donc vautrade de ma part , il semblerait qu'en terme de perf le distinct soit meilleur et également adapté à son besoin... ze m'incline

  9. #9
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    Bonjour,

    Je suis pas très douée en php...mais je m'accroche !
    Alors comment fait on pour stocker les valeurs en majuscules ???? (pour suivre ta proposition ?

    Merci !

  10. #10
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    Il faut que tu changes le charset des champs sur lesquels tu requêtes (ville, régions, pays...) en case insensitive, c'est le fameux ci (les 2 derniers caractères de chaque charset). De cette mannière si tu recherche paris, il te trouveras non seulement paris, mais aussi PARIS, Paris, PaRiS etc.

Discussions similaires

  1. [MySQL] Menu "deroulants dynamiques"
    Par spawns dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/02/2008, 12h34
  2. Menu Deroulant Dynamique Xml
    Par ELIC dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/07/2006, 09h17
  3. [debutant]menu deroulant dynamique
    Par jojo971 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/07/2006, 10h47
  4. Menu deroulant dynamique vertical
    Par khokho dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 14/06/2006, 11h56
  5. Menu deroulant dynamique vertical
    Par khokho dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/06/2006, 15h34

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