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

  FORUM HardWare.fr
  Programmation
  PHP

  Liste de la hiérarchie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste de la hiérarchie

n°1541181
polo7
Posté le 11-04-2007 à 11:03:34  profilanswer
 

Salut à tous,
j'ai créé un script qui permet d'obtenir une hiérarchie (catégorie et sous-catégorie, ... à l'infini), mais je n'arrive pas à obtenir une liste toute simple pour l'utiliser dans une requête Mysql.
Voici mon script:

Code :
  1. function item_tree($id_item, $name_item, $name_item_parent, $table)
  2. {
  3. echo "<ul>";
  4. $req_item = mysql_query("SELECT * FROM $table WHERE $name_item_parent='$id_item'" );
  5. $num_item = mysql_num_rows($req_item);
  6. for ($i = 0 ; $i < $num_item ; $i++)
  7.    {
  8.         $id_item = mysql_result($req_item,$i,"$name_item" );
  9.         echo "<nobr>";
  10.         echo "<li>";
  11.         echo "<option>$id_item";
  12.         echo "</option>";
  13.         echo "</nobr>";
  14.                 item_tree($id_item, $name_item, $name_item_parent, $table);
  15. }
  16. echo "</ul>";
  17. }


Message édité par polo7 le 11-04-2007 à 11:06:18
mood
Publicité
Posté le 11-04-2007 à 11:03:34  profilanswer
 

n°1541266
rufo
Pas me confondre avec Lycos!
Posté le 11-04-2007 à 13:11:22  profilanswer
 

que viennent faire des balises options dans des balises ul???

n°1541272
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2007 à 13:18:11  profilanswer
 

question:  
ton truc fait un requete par noeud de ton arbre, donc si on prend un arbre binaire de profondeur n, tu vas faire n(n+1)/2 requêtes. T'as pas peur que ça rame???

n°1541398
polo7
Posté le 11-04-2007 à 15:45:27  profilanswer
 

Hello,
La balise option, ne pas en tenir compte, je l'utilisait pour autre chose.
Ca rame pas trop, ça fonctionne bien, mais la question, c'est d'obtenir une liste de tous les items sous un item donné.

n°1541412
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2007 à 16:07:49  profilanswer
 

comprends pas ce qui marche pas !!! Ce que tu fais est a peu près bon sur le passage recursif de id_item. Il va falloir détaillé le dysfonctionnement.
Par contre  $name_item, $name_item_parent, $table ne sont jamais modifées s'normal?
 
Note: dans mon poste précédent j'ai écrit une bonne boulette, le nombre de requêtes est (2^n+1)-1 et non n(n+1)/2 ...

n°1541441
polo7
Posté le 11-04-2007 à 16:40:17  profilanswer
 

avec ça, j'affiche la hiérarchie, mais j'aimerais obtenir une variable de sortie avec la liste des id_item.
C'est peut-être con, mais là je bug.

n°1541454
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2007 à 16:55:01  profilanswer
 

tu passes une référence à un tableau en paramètres à ta fonction, dans ta boucle for tu push $id_item dedans( ou la même sans référence mais avec une variable "globale" ), ou encore tu fais retourner la liste des id_items trouvées à ta fonction item_tree


Message édité par anapajari le 11-04-2007 à 16:55:31
n°1541481
rufo
Pas me confondre avec Lycos!
Posté le 11-04-2007 à 17:25:09  profilanswer
 

moi, je vois plutôt une boucle while qui parcourt un tableau initialisé avec l'item de départ et qui boucle sur ce tableau tant qu'il y a de nouveaux fils trouvés à ajouter à ce tableau.

n°1541604
polo7
Posté le 11-04-2007 à 19:44:01  profilanswer
 

merci, quel code proposez-vous ?
Je ne maitrise pas tout.

n°1542655
rufo
Pas me confondre avec Lycos!
Posté le 13-04-2007 à 14:38:58  profilanswer
 

t'as pas compris le principe : TU proposes du code à partir de ce qu'on t'as dit et ensuite on affine ensemble...

mood
Publicité
Posté le 13-04-2007 à 14:38:58  profilanswer
 

n°1542675
supermofo
Hello World !
Posté le 13-04-2007 à 15:06:45  profilanswer
 

c mort avec cette structure a la base quoi que tu fasses

n°1542737
rufo
Pas me confondre avec Lycos!
Posté le 13-04-2007 à 17:28:44  profilanswer
 

Là, je ne suis pas d'accord. Certes, côté perfs, c'est pas terrible du tout (surtout si l'arborescence est grosse) mais pour une table de qq 100ènes d'enregistrements, ça passe sans pbs.

n°1542756
supermofo
Hello World !
Posté le 13-04-2007 à 18:11:13  profilanswer
 

Comment tu extrait tous les noeuds/feuille d un noeud donne ?

 

C est forcement un nombre de requete ~= au nombre de noeud ou une requete de malade donc ca sux.

 

T as la ptite hierarchie:

 

--root
---- n1
--------[n3]
------------n5 *
----------------n7 *
----------------n8 *
------------n6
--------n4
---- n2

 

Je voudrais tous les noeud (et le contenu) sous n3 en une requete sur des index  car justement j utilise cette hierarchie sur toutes les pages de mon site et puis j en ai plein d autres. :s


Message édité par supermofo le 13-04-2007 à 18:27:49
n°1542816
polo7
Posté le 13-04-2007 à 23:49:49  profilanswer
 

c'est intéressant tout ça, mais c'est pas simple, il faut se casser la tête.
Avec la boucle while, je n'y arrive pas.

n°1543192
rufo
Pas me confondre avec Lycos!
Posté le 16-04-2007 à 09:45:42  profilanswer
 

ben la boucle while, pour le coup, c'est assez simple...Simule l'algo sur papier en te baseant sur l'ex de supermofo.


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

  Liste de la hiérarchie

 

Sujets relatifs
liste deroulante en javascript[cpp] [Débutant]Question à propos de liste chainées
liste déroulante pour choisir une base de donnée différentepetit problème pour transfert de valeurs dans liste à choix multiple
a l'aide d'une liste box comment on peux acceder a la page selectionnéPHP 4/5 -> Array (pas de liste ?) [Résolu]
[c] liste simplement chainé==> pb [résolu==> merci][C++] STL - list : doit contenir uniquement des objets dynamiques ??
Liste de donnees[Résolu]Liste déroulante dynamique qui ne s'affiche pas
Plus de sujets relatifs à : Liste de la hiérarchie


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)