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

Programmation d'applications complexes
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

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

Message 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.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message 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 !
Répondre