IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création d'une arborescence [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Par défaut Création d'une arborescence
    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 :

    J'obtiens :
    voiture
    --ford
    --fiat
    --renault
    batterie
    --caisse claire
    --baguette
    ----courte
    ----longue
    --symbale
    Voici ma fonction :
    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
    19
    20
    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.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Va voir là :
    http://sqlpro.developpez.com/cours/arborescence/
    Avec ça, pas besoin de fonction récursive.

  3. #3
    Membre éclairé Avatar de snyfir
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 246
    Par défaut
    Citation Envoyé par jeca Voir le message
    Bonjour,

    Va voir là :
    http://sqlpro.developpez.com/cours/arborescence/
    Avec ça, pas besoin de fonction récursive.
    Merci, ce tutorial est super. Cependant, je n'arrive pas à déplacer une branche. Si quelqu'un a une idé e??

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 27
    Par défaut
    Citation Envoyé par snyfir Voir le message
    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 :

    J'obtiens :
    Bonjour,

    tu n'est pas obligé de travailler avec des intervalles pour ce que tu veux faire.
    Tu fais une requête qui te ramenne ce que tu as dans ta table en triant sur les id_parent du plus grand au plus petit.
    Ce qui fait que tu vas obtenir un résultat dans l'ordre des niveaux, les parents en premier (id_parent 0) puis les enfants, les enfants des enfants, etc etc.

    En une seul boucle contenant autant d'itération qu'il y a de lignes résultats, tu peux reconstruire la structure.
    admettons que tu la place dans un tableau, tes premières ligne de résultats seront les parents. Quand tu vas commencer à traiter une ligne qui a un parent, il est forcément déjà dans ton tableau, et ainsi de suite.

Discussions similaires

  1. [Spip] Création d'une arborescence des articles rédigés par un auteur
    Par Lili72430 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 19/09/2008, 11h09
  2. création d'une arborescence pour lister un repertoire et ses sous-repertoires
    Par fadoua34090 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 10/02/2008, 22h26
  3. Création d'une Arborescence
    Par xycoco dans le forum IHM
    Réponses: 0
    Dernier message: 24/10/2007, 15h37
  4. Création d'une arborescence pour sélection?
    Par Rheym dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/03/2007, 16h16
  5. Création d'une arborescence de dossiers
    Par guidzit dans le forum Access
    Réponses: 4
    Dernier message: 25/09/2006, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo