Page 1 sur 1

Base de données (encore :p) et Récursivité

Publié : mer. 09/nov./2005 16:28
par Progi1984
Voila, j'ai une table BD avec différents champs

table BD
champ 1 : id, entier
champ 2 : nom, chaine
champ 3 : parent

et parent correspond à un id

J'espère que vous avez compris jusque là :)

Donc maintenant, j'essayerais de charger cette BD dans un treegadget.
EN gros, ceux qui ont pour parent à 0, sont les noeuds racines et les autres ont pour noeud parent le noeud ayant l'iD égale à celui de parent.

Aprés moults réflexions, j'en arrive à demander votre aide.

Publié : mer. 09/nov./2005 19:10
par lionel_om
Méthode 1 :
Si parent a tout le temps une valeur (ex : (1, "nom1", 1)(2, "nom2", 1)(3, "nom3", 2)
Tu peux faire tout en une requete :
"SELECT * FROM tableBD ORDER BY parent"
à chaque BD_Next(), tu stoque le champ "parent".
S'il est différent de l'ancien ca fait un nouveau noeud...


Méthode 2 : plus barbare, mais marche aussi
Tu stoque tt dans une liste chainée.
Tu la parcours (en gardant un pointeur ou un indice)
Et soit :
* tu la reparcours (pour chaque indice) en recherchant les lignes ayant parant valant l'indice courant
* tu refais un appel BD : "SELECT * FROM tableBD WHERE parent=" + valParent

J'ai pas le tps de te faire un exemple (Partiels power .. :? )
Mais si t'es tjrs bloqué d'ici qq jours, je pourrais te filer un cp de main .. :wink:

Publié : ven. 18/nov./2005 19:37
par Progi1984
Merci lionel_om de ton aide ! Finalement, je suis passé au XML qui est plus orienté pour mon projet (que vous découvrirez bientot) ! Et grace à cela, deux semanes de recherche et de tests ont été refaites grace à un XML à seulemnt une aprés midi de codage !