Création de listes + script PHP
Arkalord
-
Arkalord -
Arkalord -
Bonjour tout le monde,
Donc voila, j'ai un petit (gros souci...) avec un script php récalcitrant. En fait, j'ai 1 dossier contenant plusieurs sous-dossiers. Mon script permet de lister les noms des sous dossiers et le nom des fichiers qu'ils contiennent. Le résultat donne un truc comme ça (jusque là, ça marche !) :
Dossier : client1
Reports/amou/client1/client1_10.05.2010.html
Reports/amou/client1/client1_15.05.2011.html
Reports/amou/client1/client1_17.01.2010.html
Reports/amou/client1/client1_21.02.2011.html
Reports/amou/client1/client1_25.01.2011.html
Reports/amou/client1/client1_30.07.2010.html
Dossier : client2
Reports/amou/client2/client2_10.05.2010.html
Reports/amou/client2/client2_15.05.2011.html
Reports/amou/client2/client2_17.01.2010.html
Reports/amou/client2/client2_21.02.2011.html
Reports/amou/client2/client2_25.01.2011.html
Reports/amou/client2/client2_30.07.2010.html
Il y a donc pour le moment 2 sous-dossiers nommés "client1" et "client2" et tous les fichiers qui lui sont attribués. C'est déjà un début. Sauf qu'il me faut maintenant mettre en place 2/3 choses, et c'est là que je sèche... :
- Une mise en page "+ jolie" grâce à des listes :
* la création d'une liste contenant le nom de chaque sous-dossier ("client1", "client2" ...)
* la création d'une liste contenant le nom de chaque fichier correspondant au dossier (donc quand je sélectionne "client1" dans la 1ère liste, tous les fichiers de ce client doivent apparaitre dans le 2nde)
* une fois les données "validées", aller vers la page correspondante (donc création d'un lien...)
Pour le moment j'ai ce script (dont le résultat est affiché + haut)(je ne sais pas pourquoi, mais d'un coup j'ai peur qu'il soit inutile et qu'il me faille tout refaire...) :
J'espère avoir été clair et précis dans mon problème (**croise les doigts**). Disons que je sais faire des listes "classiques", mais qu'en mettre en place sur ce cas là, c'est beaucoup plus complexe pour moi... Merci d'avance si quelqu'un peut m'aider :/
Donc voila, j'ai un petit (gros souci...) avec un script php récalcitrant. En fait, j'ai 1 dossier contenant plusieurs sous-dossiers. Mon script permet de lister les noms des sous dossiers et le nom des fichiers qu'ils contiennent. Le résultat donne un truc comme ça (jusque là, ça marche !) :
Dossier : client1
Reports/amou/client1/client1_10.05.2010.html
Reports/amou/client1/client1_15.05.2011.html
Reports/amou/client1/client1_17.01.2010.html
Reports/amou/client1/client1_21.02.2011.html
Reports/amou/client1/client1_25.01.2011.html
Reports/amou/client1/client1_30.07.2010.html
Dossier : client2
Reports/amou/client2/client2_10.05.2010.html
Reports/amou/client2/client2_15.05.2011.html
Reports/amou/client2/client2_17.01.2010.html
Reports/amou/client2/client2_21.02.2011.html
Reports/amou/client2/client2_25.01.2011.html
Reports/amou/client2/client2_30.07.2010.html
Il y a donc pour le moment 2 sous-dossiers nommés "client1" et "client2" et tous les fichiers qui lui sont attribués. C'est déjà un début. Sauf qu'il me faut maintenant mettre en place 2/3 choses, et c'est là que je sèche... :
- Une mise en page "+ jolie" grâce à des listes :
* la création d'une liste contenant le nom de chaque sous-dossier ("client1", "client2" ...)
* la création d'une liste contenant le nom de chaque fichier correspondant au dossier (donc quand je sélectionne "client1" dans la 1ère liste, tous les fichiers de ce client doivent apparaitre dans le 2nde)
* une fois les données "validées", aller vers la page correspondante (donc création d'un lien...)
Pour le moment j'ai ce script (dont le résultat est affiché + haut)(je ne sais pas pourquoi, mais d'un coup j'ai peur qu'il soit inutile et qu'il me faille tout refaire...) :
<?php /* Connexion à la BD */ $db = mysql_connect('localhost', 'root', '') or die ("erreur connect"); mysql_select_db('Actis',$db) or die ("erreur db"); $client = $_SESSION['login']; // Récupération du nom du client $requete= mysql_query("SELECT dossier FROM personne WHERE nom = '$client'"); // 1 seul dossier par client $result = mysql_fetch_array($requete); $nomdossier = $result['dossier']; /* Affichage du contenu des dossiers et sous-dossiers */ function parcours_dossier($chemin_dossier) { // On ouvre le dossier à lire $dossier = opendir($chemin_dossier); // On parcours l'ensemble des éléments présent dans le dossier while($element = readdir($dossier)) { // On ne s'occupe ni du répertoire courant ni du répertoire parent if(($element != ".") && ($element != "..")) { // Si le fichier est un dossier if(file_exists($chemin_dossier."/".$element) && is_dir($chemin_dossier."/".$element)) {echo "<br />Dossier : ".$element."<br /><br />"; // On parcours les sous dossiers parcours_dossier($chemin_dossier."/".$element); } else { $concatenation= $chemin_dossier."/".$element ; echo $concatenation; // c'est ce qui affiche "Reports/amou/client1/client1_10.05.2010.html" par exemple, "amou" étant le dossier, "client1" le sous-dossier et "client1_10.05.2010.html" le fichier echo '<br>'; } } } closedir($dossier); } // On appelle la fonction de parcours des dossiers parcours_dossier("Reports/$nomdossier"); ?>
J'espère avoir été clair et précis dans mon problème (**croise les doigts**). Disons que je sais faire des listes "classiques", mais qu'en mettre en place sur ce cas là, c'est beaucoup plus complexe pour moi... Merci d'avance si quelqu'un peut m'aider :/
A voir également:
- Création de listes + script PHP
- Script vidéo youtube - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
2 réponses
Salut !
Ce que tu pourrais faire, au lieu de faire une variable $concatenation en string et d'en faire l'echo à chaque fois, serait de conserver le tout dans une variable de style array(), que tu pourrais utiliser plus tard.
Par exemple, au lieu de
Fais un
(tu peux arriver au même résultat avec la fonction PHP array_push())
(En n'oubliant pas d'initialiser : $liste_clients = array() en début de fonction)
Tu pourras ensuite la parcourir à volonté avec un foreach().
Tu peux créer un autre array qui contiendra tous les noms de tes dossiers (client1, client2, etc.)
Est-ce que ça t'aide ?
Je suis un paranoïaque à l'inverse : je crois que l'univers conspire à me rendre heureux.
Ce que tu pourrais faire, au lieu de faire une variable $concatenation en string et d'en faire l'echo à chaque fois, serait de conserver le tout dans une variable de style array(), que tu pourrais utiliser plus tard.
Par exemple, au lieu de
$concatenation= $chemin_dossier."/".$element ;
Fais un
$liste_clients[] = $chemin_dossier."/".$element;
(tu peux arriver au même résultat avec la fonction PHP array_push())
(En n'oubliant pas d'initialiser : $liste_clients = array() en début de fonction)
Tu pourras ensuite la parcourir à volonté avec un foreach().
Tu peux créer un autre array qui contiendra tous les noms de tes dossiers (client1, client2, etc.)
Est-ce que ça t'aide ?
Je suis un paranoïaque à l'inverse : je crois que l'univers conspire à me rendre heureux.