code php reccurent

WRInaute discret
Bonjour,
j'explique.

soit le schéma suivant .


X
/ \
Z Y
/ \ \
L H J

Bon je veux faire un programme qui permet de dégager les amis niveau 1 de X qui sont (Z et Y), puis dégager les amis niveau 2 de X qui sont (L, H , J) qui sont les amis niveau 1 de Z et Y. jusqu'à niveau 10
sachant que les données sont enregistres dans deux tables

exemple

table_liste
Nom | id
X | 10
Z| 14
Y | 12
L | 8
H| 2
j| 4

table_amis :
Id_nom | id_amis
10 |14
10 |12
14 |8
14 |2
12 |4



Si veut afficher les amis de x de niveau 1 jusqu'à niveau 10 , je dois utiliser une fonction récurrente?

Comment faire ça ?
Merci.
 
Nouveau WRInaute
Tu auras surement plus de réponses sur un forum de développeurs.

Pour répondre à ta question, la première solution est en effet de faire un parcours récurrent, mais on peut surement faire plus optimiser, ça dépend de plusieurs choses comme :

- Est-ce qu'une lettre sera toujours au même niveau, ou peut se retrouver n'importe où ?
- Est-ce que tu veux afficher toujours à partir du niveau 1 ou de n'importe quel niveau ?

Déjà, pour éviter les multiples requêtes (comme c'est dans une base) je te conseille de faire une requête qui charge dans des tableaux tout ce dont tu as besoin, puis de faire la fonction récurrente sur ces tableaux.
 
Nouveau WRInaute
Ok, donc c'est le cas le plus simple.

Tu n'as pas besoin de table_amis, juste ajouter une colonne qui spécifiera pour chaque lettre qui est le parent.

Si en plus tu prévois qu'il y ait plus de 10 niveaux, mais que tu veux afficher que les 10 premiers, ajoute à table_liste une colonne pour spécifier à quel niveau appartient telle lettre.

Après je pense que c'est juste du parcours de tableau avec un peu de tri.

Voilà pour moi la première solution à laquelle je pense, après il y a peut être plus optimisé.
 
Discussions similaires
Haut