Salut à tous,
J'ai un script qui gère entre autres des catégories. On a donc des dossiers, des sous-dossiers, des sous-sous dossiers...
Dans ma table ils sont référencés par id et refid.
id est l'auto incrément unique dans ma table et refid indique l'id du dossier parent.
Ce que je cherche c'est au départ, pour le(s) premier(s) dossier(s), indiquer le nombre de sous dossiers. Donc la méthode c'est de lister les sous-dossiers, puis par récurrence relister ces sous-dossiers.
Voila ma fonction:
Comme je relance la fonction, je me suis dit qu'il était mieux de changer le nom de la requête, et pareil pour le total, le retransmettre à chaque fois. Finalement çe ne fonctionne pas; il m'indique le nombre de sous-dossiers qui se trouve strictement dans le dossier initial.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function count($id=false, $i=0, $total=0) { if ($id) { $n = 'query'.$i; // nom de la requête $$n = mysql_query("SELECT id FROM filemanager_cats WHERE refid = '".$id."'") or die ($this->debug()); // sélection de l'id des sous-dossiers while (list($id) = mysql_fetch_array($$n)) { $total++; // tant qu'il y a un résulant, on incrémente le total $i++; // et le nom de la requête $this->count($id, $i, $total); // on relance pour vérifier l'existance d'éventuels sous dossiers. } return $total; /* Ce qui suit est négligeable */ } else { $query = mysql_query("SELECT id FROM filemanager_cats") or die ($this->debug()); echo _TEXT_DIR_.": ".mysql_num_rows($query)."<br />"; } }
J'espère avoir été clair, si quelqu'un voit le problème...
Merci![]()
Partager