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 :

Remplir une liste déroulante avec les résultats d'une fonction [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut Remplir une liste déroulante avec les résultats d'une fonction
    Bonjour tout le monde.
    J'ai une fonction récursive qui permet de retourner la liste des personnes qui sont sous la direction d'une autre personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function tree($rootcell) { 
    $n=0;
    $result = mysql_query("SELECT emp_id, FROM personne WHERE emp_id_id='$rootcell'"); 
    		while ($row = mysql_fetch_array($result)) {
    		$n = $n+1;
    		echo $row['emp_id'].'<br/>';
    		tree($row['emp_id'], $n+1); 
    		}
     
    }
    Je veux maintenant remplir une liste déroulante avec les résultats de cette fonction mais j'ai pas réussi à le faire.
    Please help ! c'est urgent

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous le code ou tu as essayé de le faire pour qu'on te le corrige.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Voice le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
     
    <body>
    <select name="emp_id">
    <option value="<?php echo tree($rootcell)?>"><?php echo tree($rootcell)?></option>
    </select>
    </body>
    </html>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tes <option> doivent être dans le echo de ta fonction, si forcement tu n'obtiens qu'un seul gros choix.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Je vous serais très reconnaissant si vous pouviez m'aider.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je viens de le faire non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Oui mais j'arrive pas à le faire puisque je suis débutant en php.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as essayé ce que je viens de te dire ?
    Ce n'est pas bien compliqué de déplacer l'affichage de '<option>' dans la fonction.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Oui j'ai essayé, il m'affiche plusieurs liste déroulantes et chaque liste contient l'identifiant de l'employée

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as bien juste mis le <option> dans la fonction pas le <select> ?
    Prends le réflexe de nous montrer le code que tu écris sinon on ne peut pas t'aider efficacement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Merci énormément Sabotage, j'ai résolu le problème. voici le code :

    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
    // code php
    <?php
    function tree($rootcell) { 
    $n=0;
    $result = mysql_query("SELECT emp_id FROM personne WHERE emp_id_id='$rootcell'"); 
    while ($row = mysql_fetch_array($result)) {
    $n = $n+1;
    echo "<option>".$row['emp_id']."</option>";
    tree($row['emp_id'], $n+1); 
    }	
    }
    ?>
    // html
    <html >
    <head>
    <title>Untitled Document</title>
    </head>
    <body>
    <select>
    <?php echo tree($rootcell); ?>
    </select>
    </body>
    </html>

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Bonsoir,
    J'ai ajouté la clause ORDER BY dans la requête mais les id's restent désordonnés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function tree($rootcell) { 
    $n=0;
    $result = mysql_query("SELECT emp_id FROM personne WHERE emp_id_id='$rootcell' ORDER BY emp_id"); 
    while ($row = mysql_fetch_array($result)) {
    $n = $n+1;
    echo "<option>".$row['emp_id']."</option>";
    tree($row['emp_id'], $n+1); 
    }	
    }
    Comment résoudre ce petit problème?

  13. #13
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Oui c'est normal que le order sql ne fonctionne pas, tu ne tries que par niveau $n, $n+1

    if faut faire une fonction avec en param un tableau et mettres tous les resultats dans ce tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function tree($rootcell, &$itemresultats) {
     ...
     //echo "<option>".$row['emp_id']."</option>";
     $itemresultats[]=$row['emp_id'];
     tree($row['emp_id'], $itemresultats); 
     ...
    }
    puis
    trier le tableau resultat : $itemresultats
    puis boucle d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($itemresultats as $item){
        echo <option>$item</option>
    }
    -----------------
    ps: $nb ???? jamais utilisé !
    $moi= ( !== ) ? : ;

  14. #14
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Salut tout le monde,
    Je suis en train d'effectuer une migration vers PDO. J'ai rencontré un problème dans la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function tree($rootcell) { 
    $n=0;
    $result = $conn->prepare("SELECT emp_id FROM personne WHERE emp_id_id='$rootcell' ORDER BY emp_id"); 
    $result->execute();
    while ($row = $result->fetch(PDO::FETC_ASSOC)) {
    $n = $n+1;
    echo "<option>".$row['emp_id']."</option>";
    tree($row['emp_id'], $n+1); 
    }	
    }
    L'erreur affiché est
    Notice: Undefined variable: conn in C:\wamp\www\page.php on line 59
    Merci pour votre aide

  15. #15
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    un petit rappel
    http://g-rossolini.developpez.com/tu...ntaxe#LIII-L-2


    ps: on a inventé le passage de paramètres dans les functions
    $moi= ( !== ) ? : ;

  16. #16
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut
    Il manque

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/09/2013, 20h23
  2. Remplir une liste déroulante avec les contacts Outlook
    Par Rapheux dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 03/09/2010, 11h46
  3. Réponses: 2
    Dernier message: 06/11/2009, 15h14
  4. remplir une fichier excel avec les résultats d'une requete
    Par cyclopsnet dans le forum Documents
    Réponses: 2
    Dernier message: 13/08/2009, 11h22
  5. Réponses: 0
    Dernier message: 13/09/2007, 08h33

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