Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1801 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une arborescence

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher une arborescence

n°1690493
killingspr​ee
Capo Di Tutti Capi
Posté le 22-02-2008 à 10:23:38  profilanswer
 

Bonjour à tous,
 
voila mon problème, j'ai une liste de Poles d'une entreprise et je souhaiterais afficher cette liste sous la forme d'une arborescence de ce type :
 
PoleParent1
    -PoleEnfant1
    -PoleEnfant2
          -PoleEnfant3
PoleParent2
    -PoleEnfant1
           -PoleEnfant4
....
 
la table est sur un SQL Server : Pole_v2(ID,Label,PoleParent,IDAgentResp)
J'ai donc réussi a le faire pour seulement 2 niveaux, lorsque je suis passé au 3ème cela a provoqué un problème avec la boucle car les 2 derniers poles sont affichés 5 fois au lieu d'une seule.
Voici mon code :

Code :
  1. $sqlparent = "select distinct(Label),ID,PoleParent from Pole_v2";
  2. $valparent = mssql_query($sqlparent);
  3. while ($result = mssql_fetch_array($valparent))
  4.       {
  5.        if($result['PoleParent'] == "" )
  6.        {
  7.         $idPoleParent = $result['ID'];
  8.         echo '<li>'.$result['Label'].'</li>';
  9.        }
  10.        $sqlEnfant = "Select ID,Label from Pole_v2 where PoleParent='$idPoleParent'";
  11.        $valEnfant = mssql_query($sqlEnfant);
  12.        while ($result2 = mssql_fetch_array($valEnfant))
  13.        {
  14.         $idPoleParent2 = $result2['ID'];
  15.         echo '<dd>'.$result2['Label'].'</dd>';
  16.        }
  17.        $sqlEnfant2 = "Select ID,Label from Pole_v2 where PoleParent='$idPoleParent2'";
  18.        $valEnfant2 = mssql_query($sqlEnfant2);
  19.        while ($result3 = mssql_fetch_array($valEnfant2))
  20.        {
  21.         echo '<dd><dd>'.$result3['Label'].'</dd></dd>';
  22.        }
  23.       }


 
Si vous avez une idée pour que mon code fonctionne ou une autre manière de procéder ?
 
Merci par avance


Message édité par killingspree le 22-02-2008 à 10:25:22
mood
Publicité
Posté le 22-02-2008 à 10:23:38  profilanswer
 

n°1690496
FlorentG
Posté le 22-02-2008 à 10:24:50  profilanswer
 

Il faudrait procéder de manière récursive plutôt

n°1690498
killingspr​ee
Capo Di Tutti Capi
Posté le 22-02-2008 à 10:26:10  profilanswer
 

C'est à dire Florent G ? peux-tu être plus précis ?
 
Merci par avance

n°1690502
FlorentG
Posté le 22-02-2008 à 10:30:57  profilanswer
 

Faut que tu fasses une fonction qui prend en paramètre un parent, et affiche la liste. Elle s'auto-appellera pour chaque élément

n°1690510
killingspr​ee
Capo Di Tutti Capi
Posté le 22-02-2008 à 10:50:14  profilanswer
 

ok merci.
Pourrais-tu me donner la structure de la fonction car c'est un peu flou, je ne vois pas vraiment comment faire.
 
Merci par avance.

n°1690538
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-02-2008 à 11:17:01  profilanswer
 

Code :
  1. function truc( $machin){
  2. //un traitement
  3. foreach($machin as $bidule){
  4.    truc($bidule);
  5. }
  6. }


---------------
Software and cathedrals are much the same - first we build them, then we pray.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une arborescence

 

Sujets relatifs
Animation flash veut pas s afficher. Help !!!!!itextsharp Afficher HTML
Cherche un script pour afficher un fichier csvafficher / cacher un div
[Debutant]Afficher element du tableau avec Randomafficher/masquer une div
Récuperer et afficher plusieurs lignes de donnéesRecuperer les coordonées d'un point dans un textBox
Afficher une barre avec arborescence page actuelleHTML : Afficher l'arborescence disque a partir d'un repertoire
Plus de sujets relatifs à : Afficher une arborescence


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR