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 :

gestion liste déroulante [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Comme l'indique jreaux, tu as un problème d'imbrication de boucles.

    Il faut réorganiser les boucles pour
    Récupérer les types de marches de l'adhérent
    Récupérer les types de marches en base pour construire la liste et vérifier si le type de marche est sélectionné

    Ce qui donne (juste en réorganisant les boucles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    // liste Type de marche
    // récupération des id type de marche de la table t_choixmarches par rapport à adherentId
     
    $sql2 = "SELECT choixMarcheAdherentId , choixMarcheTypeMarcheId 
    FROM t_adherents
    INNER JOIN t_choixmarches
    ON adherentId = choixMarcheAdherentId
    WHERE choixMarcheAdherentId = $adherentId ";
     
    $req2 = $db->query($sql2);
    $tab_marche = array();
    while ($r2 = $req2->fetch()) { // while 1
        $choixMarcheAdherentId   = $r2['choixMarcheAdherentId'];
        $choixMarcheTypeMarcheId = $r2['choixMarcheTypeMarcheId'];
     
        // ici je construit un tableau que je vais utiliser dans mon foreach
        $tab_marche[] = $choixMarcheTypeMarcheId;
    } // fin while 1
     
    // là je vais chercher ma table t_typemarches pour avoir les libelles des typemarche
    $req3 = $db->query("SELECT typeMarcheId, typeMarcheLibelle,typeMarcheEssai  FROM t_typemarches WHERE typeMarcheEssai = '0' ORDER BY typeMarcheId ASC");
    // je commence ma construction de ma liste
    $ld_marches = "<SELECT multiple='4' NAME='lst_marche'>";
    $ld_marches .= "<OPTION VALUE=0>Choisissez</OPTION>";
     
    // et là j'essaie de faire un boucle pour associer le libelle de la marche à l'id récupéré 
    while ($r3 = $req3->fetch()) { // while 2
     
        $typeMarcheId      = $r3["typeMarcheId"];
        $typeMarcheLibelle = $r3["typeMarcheLibelle"];
        $s3 = "";
        foreach ($tab_marche as $id) {
            if ($typeMarcheId == $id) {
                $s3 = "selected";
            }
        } // fin du foreach
     
        $ld_marches .= "<OPTION VALUE='$typeMarcheId' $s3 >
                    $typeMarcheLibelle</OPTION>";
     
    } // fin while 2
    $ld_marches .= "</SELECT>";
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Salut
    Bon je vais tester cela dans la semaine : je vous tiens au courant

    Pour répondre à jreau sur pourquoi liste déroulante et non Checkbox
    J'ai teste avec des checkbox et c'est vrai que c'est plus "facile" à mettre en place
    Mais je me suis : et si jamais il devait y avoir un nouveau type de marche il faut créer une nouvelle checkbox alors qu'avec la liste déroutante on fait une interface d'administration et la on rajoute notre nouvelle type de marché sans rentrer dans le code : enfin c'est ce que je pense ou alors il existe un autre moyen de gérer les checkbox que je ne connais pas !!!

    Merci encore pour vos réponses

    Cordialement

  3. #23
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Citation Envoyé par leblaireau12 Voir le message
    ... ou alors il existe un autre moyen de gérer les checkbox que je ne connais pas !!!
    Tu génères les cases de la même façon que tu génères les options de ta liste de choix.

    A+.

  4. #24
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Avec les checkboxes, ça donne quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // là je vais chercher ma table t_typemarches pour avoir les libelles des typemarche
    $req3 = $db->query("SELECT typeMarcheId, typeMarcheLibelle,typeMarcheEssai  FROM t_typemarches WHERE typeMarcheEssai = '0' ORDER BY typeMarcheId ASC");
     
    // et là j'essaie de faire un boucle pour associer le libelle de la marche à l'id récupéré 
    while ($r3 = $req3->fetch()) { // while 2
     
        $typeMarcheId      = $r3["typeMarcheId"];
        $typeMarcheLibelle = $r3["typeMarcheLibelle"];
        $s3 = "";
        foreach ($tab_marche as $id) {
            if ($typeMarcheId == $id) {
                $s3 = "checked";
            }
        } // fin du foreach
     
        $ld_marches .= '<input type="checkbox" name="lst_marche[]" VALUE="'.$typeMarcheId.'" '.$s3.' id="lst_marche_'.$typeMarcheId.'" />
                    &nbsp;<label for="lst_marche_'.$typeMarcheId.'">'.$typeMarcheLibelle.'</label><br>';
     
    } // fin while 2
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Salut

    Merci Celira : grace à toi j'ai réglé mon problème de liste déroulante mais je vais testé ta solution de checkbox

    Je tiens à profiter de ce message pour remercier :

    CinePhil qui m'a permis de mieux structurer mes données en faisant une table de relation (beaucoup plus facile à gérer et surtout plus pro !!)

    Jreaux62 qui lui m'a poussé à faire un code plus propre plus quelques solutions

    Merci donc à vous trois et je vous souhaite encore une fois une bonne et heureuse année 2018 avec plein de bonne choses

    Et je pense que vous me reverrez sur ce forum car j'aurais toujours des questions à poser car on ne sait pas tout !!!

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Gestion liste déroulante
    Par demenvil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/09/2011, 11h15
  2. Réponses: 7
    Dernier message: 08/12/2007, 14h37
  3. Gestion de 5 listes déroulantes liées avec paramètres SQL
    Par kenshir0 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/04/2007, 18h46
  4. Réponses: 1
    Dernier message: 20/06/2006, 17h39

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