Ce que tu décris là, c'est un parcours en largeur.Envoyé par flawer
Tu peux faire cela en PHP (dans une fonction, par exemple):
1) Tu fais une requête qui va te retourner les noeuds de départ:
- un noeud précis:
- tous les noeuds de niveau 1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM process WHERE id_process=2
- autre mode de sélection: faire une requète appropriée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM process WHERE id_process_pere IS NULL
2) Tu parcours les résultats (et tu les affiches). Si pas de résultat renvoyé, on s'arrète. Sinon, on relève tous les id_process (ex: 3,5,7,11,17)
3) Tu fais une requête pour trouver les fils de ces noeuds:
4) Tu retournes en 2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM process WHERE id_process_pere IN (3,5,7,11,17)
C'est simple, non?
Partager