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 :

Arborescence virtuelle de dossiers


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Par défaut Arborescence virtuelle de dossiers
    Bonsoir,

    Je suis en train de développer une petite appli' de gestion de mots de passe. Dans cette appli' je cherche à classer mes mots de passe par dossiers et sous-dossiers forcéments.

    Un petit exemple de ce que je veux faire :

    Dossier 1
    ----Dossier 2
    ----Dossier 3
    ---------Dossier 4
    ----Dossier 5
    ---------Dossier 6
    -------------Dossier 7
    ---------Dossier 8
    ----Dossier 9
    ----Dossier 10

    Ma table folder est ainsi :

    folder (#id_folder, parent_folder, name_folder)

    Vous l'avez compris, je cherche à faire une arborescence de mes dossiers

    J'ai alors essayé de faire quelque chose dans le genre mais j'ai du mal sur l'algo en elle même...

    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
    <?php
    // Je recupère le dernier id_folder de la table
    $lst_idfolder = mysql_query('SELECT `id_folder` FROM `folder` ORDER BY `id_folder` DESC LIMIT 0, 1');
    $last_idfolder = mysql_fetch_array($lst_idfolder, MYSQL_NUM);
    echo $last_idfolder[0];
     
    // Fonction qui va faire le listing (Je pensais faire en sorte qu'elle s'appelle elle même mais ça n'a servit à rien
    function folder_listing()
    {
            global $last_idfolder;
            for($i=0; $i<$last_idfolder[0]; $i++)
            {
                    $lst_folder = mysql_query('SELECT * FROM `folder` WHERE `parent_folder`='.$i.' ORDER BY `name_folder` ASC');
                    echo '<br />Parent_a : '.$i;
            }
    }
    //Premier appel de la fonction
    folder_listing();
    ?>
    SVP quelqu'un aurait-il une idée... Je commence à m'arracher les cheuveux

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    en gros il faudrait que ta fonction d'affichage soit récursive, comme ça par exemple
    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
    21
    function afficherArboresence($repertoire, $prefixeAffichage)
    {
        // affichage du nom du répertoire
        $nomRepertoire = ...
        echo "$prefixeAffichage $nomRepertoire<br/>";
     
        // recherche des sous-répertoires
        $listeRepertoires = ...
     
        if (count($listeRepertoires) > 0) { // s'il y a des sous-répertoires
            foreach ($listeRepertoires as $repertoire) {
                afficherArboresence($repertoire, "$prefixeAffichage----");
            }
        }
    }
     
    // recherche du répertoire racine
    $repertoireRacine = ...
     
    // début de l'affichage
    afficherArboresence($repertoireRacine, '');

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Par défaut
    J'ai peur de ne pas avoir compris ta réponse. Je vois que tu utilises $prefixeAffichage----. Mon but n'est pas d'afficher des tirets mais bien de faire l'arborescence des "dossiers".

    Pourrais-tu m'expliquer ou donner un peu plus de détail stp?

    J'ai trouvé ça sur le site :
    http://sqlpro.developpez.com/cours/arborescence/
    Mais la je patoge...

    Ca m'étonne que personne n'ai jamais été confronté à se problème.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    Citation Envoyé par SpyesX Voir le message
    c'est une autre méthode de stockage de l'arborescence dans la base de données.

    je n'ai pas compris ce que tu appelles "faire l'arborescence", tu veux obtenir quoi comme résultat ?

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Par défaut
    En fait je veux classer mes mots de passe. Donc je veux les mettre dans des dossiers. Pour cela chaque mots de passe contient l'id du dossier dans lequel il doit être.

    ex :
    id : 30
    site : developpez.com
    login : spyesx
    pass : monpass
    id_folder : 5

    La je peux dire que le mot de passe n°30 appartient au dossier n°5. Jusque la c'est normal. Mais moi je veux que les dossier contiennent aussi des dossiers.

    ex :
    Dossier 1
    ------ MDP 30
    -------MDP 32
    -------Dossier 4
    -------------Dossier 5
    -------------Dossier 7
    Dossier 6

    La je peux voir que le Dossier 1 contient deux mots de passe (MDP 30 et MDP 32) mais aussi le Dossier 4. Qui lui même contient les Dossiers 5 et 7.

    J'ai alors créé la table folder :
    folder
    id_folder //Numéro du dossier
    parent_folder //Dossier parent
    name_folder //Nom du dossier

    Tout ça c'est bon. La ou je n'y arrive pas c'est lorsqu'il faut que j'affiche la liste complète de tout les dossiers et de tout les mots de passe.

    Je n'arrive pas à afficher l'arborescence complète et dynamiquement. Et il je veux pas afficher que deux ou trois sous niveaux

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    pour afficher en plus les mots de passe tu peux aussi utiliser mon code

    j'ai juste rajouté quelques lignes par rapport à l'autre message
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    function afficherArboresence($repertoire, $prefixeAffichage)
    {
        // affichage du nom du répertoire
        $nomRepertoire = ...
        echo "$prefixeAffichage $nomRepertoire<br/>";
     
        // recherche des mots de passe de ce répertoire
        $listeMotDePasse = ...
     
        // affichage des mots de passe
        foreach ($listeMotDePasse as $motDePasse) {
            echo ...
        }
     
        // recherche des sous-répertoires
        $listeRepertoires = ...
     
        if (count($listeRepertoires) > 0) { // s'il y a des sous-répertoires
            foreach ($listeRepertoires as $repertoire) {
                afficherArboresence($repertoire, "$prefixeAffichage----");
            }
        }
    }
     
    // recherche du répertoire racine
    $repertoireRacine = ...
     
    // début de l'affichage
    afficherArboresence($repertoireRacine, '');

Discussions similaires

  1. [AC-2007] Chercher un fichier dans l'arborescence d'un dossier
    Par charlingals1 dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/01/2011, 10h56
  2. Stocker l'arborescence d'un dossier
    Par saad.hessane dans le forum Windows
    Réponses: 2
    Dernier message: 31/10/2010, 23h21
  3. Hôte virtuel et dossier public
    Par betadev dans le forum Apache
    Réponses: 1
    Dernier message: 17/06/2010, 19h37
  4. Réponses: 9
    Dernier message: 25/09/2008, 20h23
  5. Réponses: 2
    Dernier message: 13/07/2006, 12h05

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