Bonjour,
je galère sur un problème et même en ayant lu quelques posts sur le forum, je ne trouve toujours pas la solution.
J'ai deux tables :
- document : id, nom, lien ...
- type_document : id, nom, id_parent
Chaque document appartient à un type.
Un type peut-être le sous type d'un autre type (on aura donc id_parent = id du sur-type, ou le type parent d'un sous type donc (et si aucun sous-type, id_parent = 0).
J'aimerai afficher la liste de mes documents classés par type et sous-type.
Un exemple pour illustrer :
Sauf que pour le moment avec mon code je n'obtiens que :Type europe
--- doc Schengen
- Type France
--- doc Paris
--- doc Lyon
Type amérique
--- doc Canada
--- doc Mexique
Et pas le premier type avec ses documents associés. On passe directement à son premier sous-type.- Type France
--- doc Paris
--- doc Lyon
Type amérique
--- doc Canada
--- doc Mexique
Voici mon code :
J'ai essayé plein de méthodes en vain : faire des while "il y a un sous type" mais du coup ça ne m'affichait que les documents du dernier sous-type s'il en existait, et rien d'autre. A noter également qu'il peut y avoir plusieurs étages de types :
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
30
31 $reqdoc = mysql_query("SELECT DISTINCT T.id_type_document,T.nom_type_document,T.id_parent FROM type_document T JOIN document D ON T.id_type_document = D.id_type_document WHERE D.id_projet = $projet AND T.id_parent = 0 ORDER BY T.nom_type_document;"); while ($data = mysql_fetch_array($reqdoc)) { $type = $data['nom_type_document']; $id = $data['id_type_document']; $parent = $data['id_parent']; // On récupère les sous types de ce type $reqsstype = mysql_query("SELECT id_type_document,nom_type_document FROM type_document WHERE id_parent = $id;"); $sstype = mysql_fetch_array($reqsstype); // S'il y a un sous type (ou +) if(mysql_num_rows($reqsstype) != 0) { echo '<tr><td><h4> '.$type.$sstype['nom_type_document'].'</h4></td></tr>'; $id = $sstype['id_type_document']; } else echo '<tr><td><h4>'.$type.'</h4></td></tr>'; $req = mysql_query("SELECT nom_document,id_document,etat_document,lien_document FROM document WHERE id_type_document = $id;"); while ($donnees = mysql_fetch_array($req)) { $nomdoc = $donnees['nom_document']; echo '<tr><td>><span class="blanc"> '.$nomdoc.'</span> ('.$donnees['etat_document'].')</td>'; echo '<td> <a href="download.php?dossier='.$dossier.'&filename='.$donnees['lien_document'].'">Télécharger</a></td></tr>'; } }
- type / sous type / sous sous type / sous sous sous type etc ...
J'ai essayé de voir en récupérant l'ancien nom de type et en comparant avec le nouveau mais rien non plus.
Enfin bon, un peu d'aide ferait plaisir parce que là ...![]()
Partager