[Php] Affichage d'une liste type mére-fille
Résolu/Fermé
A voir également:
- [Php] Affichage d'une liste type mére-fille
- Liste déroulante excel - Guide
- Pile carte mere - Guide
- Easy php - Télécharger - Divers Web & Internet
- Parole chanson d'une maman pour sa fille ✓ - Forum Musique / Radio / Clip
- Liste déroulante en cascade - Guide
17 réponses
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 10:26
20 déc. 2005 à 10:26
Dur dur :P
une solution complètement pas optimisée serait de faire comme ceci
sélectionner tous les éléments dont l'App est à 0
pour chacun de ces éléments
prendre l'id de l'élément
puis, sélectionner tous les élément dont l'app est égale à l'id
et on recommence ....
Tu vas faire des requêtes en pagaille ! :P
Mais c'est la façon la plus simple à expliquer et à faire si tu débutes.
une solution complètement pas optimisée serait de faire comme ceci
sélectionner tous les éléments dont l'App est à 0
pour chacun de ces éléments
prendre l'id de l'élément
puis, sélectionner tous les élément dont l'app est égale à l'id
et on recommence ....
Tu vas faire des requêtes en pagaille ! :P
Mais c'est la façon la plus simple à expliquer et à faire si tu débutes.
Utilisateur anonyme
20 déc. 2005 à 10:37
20 déc. 2005 à 10:37
J'ai essaier ... mais il faut le faire en "dynamique" car je doit pourvoir insérer x niveaux ... et comme tu dis ca va être lourd ....
Sans quoi on peut faire comment ... même en plus complexe :D
Peut être que je peux m'y risquer
Sans quoi on peut faire comment ... même en plus complexe :D
Peut être que je peux m'y risquer
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 10:49
20 déc. 2005 à 10:49
Qu'entends-tu par "dynamique" ? et insérer x niveaux ?
En fait, il faut faire une fonction récursive, comme ça tu ne seras pas limité par le nombre de niveaux.
De toute façon, il faut du récursif ...
En fait, il faut faire une fonction récursive, comme ça tu ne seras pas limité par le nombre de niveaux.
De toute façon, il faut du récursif ...
Utilisateur anonyme
20 déc. 2005 à 10:58
20 déc. 2005 à 10:58
c'était récursif que je voulais dire par "dynamique" :(
Genre je fais
$x=0;
SELECT level FROM folder
(là faudrait trouver le niveau maximun)
WHILE ($niveauMax != $x)
SELECT * FROM folder WHERE level=$x;
=>récupération de l'id
SELECT * FROM folder WHERE app=$idPere
=>traitement
$x++;
Comment fait on pour trouver la valeur max d'un champ ... pour niveauMax ??
Genre je fais
$x=0;
SELECT level FROM folder
(là faudrait trouver le niveau maximun)
WHILE ($niveauMax != $x)
SELECT * FROM folder WHERE level=$x;
=>récupération de l'id
SELECT * FROM folder WHERE app=$idPere
=>traitement
$x++;
Comment fait on pour trouver la valeur max d'un champ ... pour niveauMax ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 11:06
20 déc. 2005 à 11:06
Je ne vois pas ce dont tu veux faire avec les niveaux parce que tu auras des redondances dans ton tableau dans ce cas.
peux-tu me faire un exemple avec des données ?
peux-tu me faire un exemple avec des données ?
Utilisateur anonyme
20 déc. 2005 à 11:11
20 déc. 2005 à 11:11
En fait je prennais les niveaux pour prendre m'ancré ...
exemple de données
NOM | ID | NIVEAU | Appertenance
__________________________
P@ | 1 | 3 | 3
Phil | 2 | 3 | 3
Dadou| 3 | 2 | 4
Jack | 4 | 1 | 0
Lili | 5 |1 | 0
Mon Objectif étant de pouvoir sortir les élèments comme suit
Jack
-Dadou
--P@
--Phil
Lili
exemple de données
NOM | ID | NIVEAU | Appertenance
__________________________
P@ | 1 | 3 | 3
Phil | 2 | 3 | 3
Dadou| 3 | 2 | 4
Jack | 4 | 1 | 0
Lili | 5 |1 | 0
Mon Objectif étant de pouvoir sortir les élèments comme suit
Jack
-Dadou
--P@
--Phil
Lili
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 11:34
20 déc. 2005 à 11:34
Ok
En fait ce dont tu disais dans ton précédent post aurais donné un résultat comme ça :
ce n'est pas ce que tu veux donc.
Un algo comme celui-ci devrait marcher
Une fonction est récursive quand elle s'appelle elle-même comme ici.
En fait ce dont tu disais dans ton précédent post aurais donné un résultat comme ça :
Jack -Dadou --P@ --Phil Lili Dadou -P@ -Phil P@ Phil
ce n'est pas ce que tu veux donc.
Un algo comme celui-ci devrait marcher
function retourner_element($app) { sélectionner tous les éléments d'app = $app classé par level pour chaque élément afficher le nom prendre son $id retourner_element($id) fin de chaque élément }
Une fonction est récursive quand elle s'appelle elle-même comme ici.
Utilisateur anonyme
20 déc. 2005 à 12:56
20 déc. 2005 à 12:56
j'ai fait
Mais ca ne me retourne rien ... pas d'ereur ... rien ...
Je ne sais pas pourquoi ..
A quoi ca sert de retourner l'ID puisqu'on ne s'en sert pas plus haut ?
function retourner_element($app) { $QUERY = faire_requete("SELECT * FROM folder WHERE app=$app"); $RESULT = mysql_num_rows($QUERY); $a=0; WHILE($RESULT!=$a) { $folder = mysql_result($QUERY,$a,"folder"); $folderID = mysql_result($QUERY,$a,"id"); $folderApp = mysql_result($QUERY,$a,"app"); $folderLevel = mysql_result($QUERY,$a,"level"); echo "<TR>"; echo "<TD>$folder - id=>$folderID - App=>$folderApp - Level=>$folderLevel</TD>"; echo "</TR>"; return $folderID; } } retourner_element('0');
Mais ca ne me retourne rien ... pas d'ereur ... rien ...
Je ne sais pas pourquoi ..
A quoi ca sert de retourner l'ID puisqu'on ne s'en sert pas plus haut ?
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 14:12
20 déc. 2005 à 14:12
Essaie comme ça plutôt.
function retourner_element($app,$appendice="") { $query = "SELECT * FROM folder WHERE app='$app' ORDER BY level"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { $id = $row["id"]; echo $appendice.$row["nom"]."<br/>"; retourner_element($id,$appendice."-"); } return true; } retourner_element('0');
Utilisateur anonyme
20 déc. 2005 à 14:24
20 déc. 2005 à 14:24
j'ai
Mais je ne sais pas par quoi remplacer
Notice: Undefined index: id in d:\bd1\comboService.inc on line 38 Notice: Undefined index: nom in d:\bd1\comboService.inc on line 39
Mais je ne sais pas par quoi remplacer
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 15:17
20 déc. 2005 à 15:17
Ce sont les champs "nom" et "id" de ta table folder.
écris-les de façon correcte.
écris-les de façon correcte.
Utilisateur anonyme
20 déc. 2005 à 15:36
20 déc. 2005 à 15:36
Mais c'est bien écris ... j'ai remplacer pour que ca corresponde ;...
C'est pour ca que je ne comprend ... il ne faut pas les choper par indice ??
C'est pour ca que je ne comprend ... il ne faut pas les choper par indice ??
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 15:53
20 déc. 2005 à 15:53
Tu peux essayer de choper par index. Mais par nom de l'indice devrait marcher si ça a été bien écris.
Utilisateur anonyme
20 déc. 2005 à 16:10
20 déc. 2005 à 16:10
Je l'ai fait avec les indice et ca marche ... merci :D
Tu crois que je peux remplacer les - par des <TR>,<TD> et incrémenté un colspan ??
Tu crois que je peux remplacer les - par des <TR>,<TD> et incrémenté un colspan ??
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 déc. 2005 à 16:17
20 déc. 2005 à 16:17
Ce sera difficile d'incrémenter un colspan mais tu peux essayer ...
Je te rappelle que c'est une solution pas super élégante que tu as là vu le nombre de requêtes nécessaire.
Tu peux t'amuser à imaginer une solution plus rapide si tu en as le coeur.
Je te rappelle que c'est une solution pas super élégante que tu as là vu le nombre de requêtes nécessaire.
Tu peux t'amuser à imaginer une solution plus rapide si tu en as le coeur.
Utilisateur anonyme
20 déc. 2005 à 16:21
20 déc. 2005 à 16:21
Je suppose que ca veux dire passer par des tableaux pour stocker les données et les traiter par la suite ??
Mais comment ca marche sur ce phorum ??
Mais comment ca marche sur ce phorum ??