Bonjour à tous.

Je gère une structure en arbre assez simplifiée. J'ai créé une table dont la structure est la suivante :
-id : identifiant de l'enregistrement
-nom
-id_parent : identifiant du parent s'il y en a un (sinon, 0)

J'ai créé une fonction récursive qui me donne tous les enfants d'un point précis de mon arbre. Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function liste_enfants($valeur){
	GLOBAL $maliste; //initialisée dans mon code avant l'appel de cette fonction
	$maliste.=$valeur.",";
	$res=query("SELECT id FROM ma_table WHERE id_parent=".$valeur);
	while($row=fetch($res)){
		liste_enfants($row["id"]);
	       }
	}
J'ai l'exemple d'un point qui a 198 enfants. Le souci est que le traitement est d'une à deux minutes pour afficher mon résultat....
Est-ce que ma fonction (pourtant simple) est mal construite ?
Comment arriver à mon résultat avec moins de temps de traitement ?
Cordialement, Johweb.