code php reccurent

netweb
WRInaute discret
WRInaute discret
 
Messages: 133
Inscription: 29 Juil 2009

code php reccurent

Message le Mer Nov 10, 2010 15:46

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.


LinkMan
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 47
Inscription: 9 Oct 2009

Re: code php reccurent

Message le Mer Nov 10, 2010 16:18

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.

netweb
WRInaute discret
WRInaute discret
 
Messages: 133
Inscription: 29 Juil 2009

Re: code php reccurent

Message le Mer Nov 10, 2010 16:30

Oui on affiche tjs à partir de niveau 1 et une lettre ne se répète pas deux fois .


LinkMan
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 47
Inscription: 9 Oct 2009

Re: code php reccurent

Message le Mer Nov 10, 2010 16:47

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é.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité