Bonsoir à tous,
J'ai l'arborescence de mon site qui se trouve dans une table avec 2
colonnes : sources et destination. Ce sont des ID vers une autre table
qui contient les pages proprement dites.
Par exemple :
Source : destination
1 3
2 3
3 4
1 5
5 6
6 3
La page 1 mène à la 3 qui mène à la 4.
La page 2 mène aussi à la 3 qui mène toujours à la 4
La page 1 mène en plus à la 5 qui mène à la 6 qui mène à la 3 qui mène à la 4
Je dois faire une fonction qui calcule la longueur d'une branche à partir d'une page donnée
Si je veux mesurer à partir de 4, j'ai une longueur de 2 (ou de 4 par le long chemin)
A partir de 3 j'ai une longueur de 1
A partir de 1, longueur de 0
Et bref, je bloque sur la fonction :
Code :
- <?php
- function recupniveau($conn, $page, $cpt=0)
- {
- /* conn = connexion a la bd - page = page a partir de laquelle on compte */
- $sql="SELECT source
- FROM NEW_Liens
- WHERE destination=$page;";
- if(!$res = $conn->query($sql))
- exit("Impossible d'exécuter la requête $sql" );
- if($res->num_rows)
- {
- while($restab=$res->fetch_array())
- {
- $cpt++;
- echo $page.' provient de '.$restab['source'].' - ';
- $cpt=recupniveau($conn, $restab['source'], $cpt);
- }
- }
- else
- echo ' longueur '.$cpt.'<br>';
- $cpt--;
- if($cpt<0)
- echo '<br>FIN<br>';
- return $cpt;
- }
- ?>
|
Une chose est sure il faut faire du backtracking mais je bloque sur les valeurs à renvoyer et quand et où incrémenter le compteur...
Si qqn a une idée, elle est la bienvenue
Message édité par zezette le 11-07-2014 à 12:28:40
---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes