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

PHP & Base de données Discussion :

Créer des listes ul à partir de tables SQL [Fait] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Par défaut Créer des listes ul à partir de tables SQL
    Bonjour,

    Je viens poser une petite question algorythmique.

    Je fais un module avec le framework php copix pour tester la théorie qui est dans cette page :
    http://sqlpro.developpez.com/cours/arborescence/

    Or, même si j'ai bien compris comment tout cela fonctionne, je n'arrive pas à transformer les données SQL des noeuds (notamment ceux donnés en exemple sur la page du tutoriel) en une grande liste imbriquée de "<ul></ul>".

    Quelqu'un aurait-il une piste pour moi ?
    Je ne sais pas comment commencer pour créer un algoryhtme qui ferait cela ?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Bonjour,
    regarde du côté de Iterator , tu devrais avoir un début de réponse

  3. #3
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Tu dis devoir exploiter une base de données de manière à créer une arborescence. Cette base de données permet-elle la récursivité ?

    Dans l'exemple ci-dessous une page peut avoir des sous-pages, et donc, par la même occasion, une page peut avoir un parent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE Pages (
    `ID` SMALLINT NOT NULL,
    `Nom` VARCHAR(100) NOT NULL,
    `ParentID` SMALLINT,
    PRIMARY KEY `ID`
    );
    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
     
    function listPages($currentPageRow){
        if(!is_null($currentPageRow)){
            $query = 'SELECT * FROM Pages WHERE ParentID='.$currentPageRow['ID'];
        }
        else{
            $query = 'SELECT * FROM Pages WHERE ParentID IS NULL';
        }
     
        if(mysql_num_rows($query) > 0){
            echo '<ul>';
            while($page = mysql_fetch_array($query)){
                echo '<li>'.$page['Nom'].'</li>',
                listPages($page);
            }
            echo '</ul>';
        }
    }
    listPages(null);
    Cette fonction liste une à une chaque page et ses enfants, pour chacun d'eux elle créé un noeud <li>, pour chaque groupe d'enfant un noeud <ul> est créé.

    J'ai écris ca a la va vite mais le principe algorithmique est le bon.

  4. #4
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Par défaut
    Merci pour ton exemple... Je vais analyser ça !
    ;-)

  5. #5
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Par défaut
    Voilà, le problème est résolu...

    J'ai fait une petite méthode pour créer mes <ul></ul> imbriqués sans soucis...

    J'ai fait un module exemple avec le framework PHP Copix.

    Vous trouverez la présentation de base ici :
    http://forum.copix.org/viewtopic.php?p=12875#12875

    Et le lien direct pour le tester avec Copix et jQueryTreeview ici :
    http://www.gigante.be/fichierspublic...rchie_v003.zip


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer des fichiers excel à partir d'une feuille et d'une liste
    Par chmouf dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2014, 20h57
  2. Créer des feuilles excel à partir d'une liste+données
    Par sof_011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2013, 15h14
  3. Créer des listes à partir d'arrays
    Par steve3000 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/06/2009, 20h29
  4. Réponses: 2
    Dernier message: 19/03/2009, 15h33
  5. créer des array numéroté à partir d'une liste
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/05/2008, 18h50

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