Création d'une arborescence

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Création d'une arborescence

Re: Création d'une arborescence

par Sékiltoyai » 30 juin 2008, 14:14

Ce que je voudrais faire, c'est d'introduire ce morceau de code dans ma classe category. Le problème est que je doit différencier le rendu, des calcul (que ma fonction echo soit a l'extérieur), de plus c'est une fonction récursive et sa m'empêche de la mettre dans ma classe. Comment je pourrais éviter tout cela ? Merci de votre aide.
Au lieu de faire un echo, je te conseille d'organiser le résultat sous forme d'un arbre (en gros un tableau multidimensionnel) dans cette méthode, pour faire cela, je ne pense pas que cela te posera beaucoup de problèmes. Et ensuite de faire une nouvelle méthode qui va appeler celle ci pour récupérer un arbre et parcourir cet arbre pour l'afficher, en gros, tu ne fais pas un echo mais tu retournes une chaine de caractère, charge au code appelant de l'afficher...

Création d'une arborescence

par snyfir » 30 juin 2008, 13:48

Bonjour,
J'ai une fonction que j'ai créé, qui me permait de créé une arborescence.
par exemple, avec une base de donné mysql comme ceci :
Image
J'obtiens :
voiture
--ford
--fiat
--renault
batterie
--caisse claire
--baguette
----courte
----longue
--symbale
Voici ma fonction :
function arborescence($id_depart = 0, $compteur = 0)
{
    global $template;

    $tabs = "";
    for($i = 0;$i < $compteur;$i++) {
        $tabs .= "--";
    }

    $retour = mysql_query("SELECT * FROM category WHERE id_parent=$id_depart");

    if (mysql_num_rows($retour)) {
        while ($donnees = mysql_fetch_array($retour)) {
            echo $tabs . $donnees['name'] . '<br />';

            $id_depart = $donnees['id'];
            arborescence($id_depart, $compteur + 1);
        }
    }
}
Ce que je voudrais faire, c'est d'introduire ce morceau de code dans ma classe category. Le problème est que je doit différencier le rendu, des calcul (que ma fonction echo soit a l'extérieur), de plus c'est une fonction récursive et sa m'empêche de la mettre dans ma classe. Comment je pourrais éviter tout cela ? Merci de votre aide.