Affichage des catégories et sous catégories
Bonjour,
L'objet :
Je développe actuellement un petit blog personnel, le but n'étant pas de de rivaliser avec dotClear mais c'est pour moi une façon d'apprendre à programmez en php.
Dans ce blog, j'ai un menu qui affiche les catégories de post. Pour afficher ces catégories, j'ai créé une fonction qui fonctionne assez bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php
/**
* Fonction getListe -> Création d'une liste reliée à MySql
* $tableName = Nom de la table
* $type = type de lien (cat, post, link)
* $colID = N° de colonne de de l'id
* $colShow = colonne MySql à afficher
**/
function getListe($tableName, $type, $colID, $colShow){
$getListe = 'SELECT * FROM '.$tableName.' ';
$reqListe = mysql_query($getListe) or die ("Impossible d'éxecuter la requête");
echo '<ul>' ;
while($liste = mysql_fetch_row($reqListe)){
echo '<li><a href="index.php?'.$type.'='.$liste[$colID].'">'.$liste[$colShow].'</a></li>' ;
}
echo '</ul>' ;
}
?> |
Cette fonction me permet d'afficher, les liens, les catégories, les archives.
Le problème :
Je souhaiterai afficher mes catégories en prennant en compte les sous catégories pour obtenir l'affichage suivant :
Code:
1 2 3 4 5 6 7 8 9
|
Catégorie1
SousCat1.1
SousCat1.2
Catégorie2
SousCat2.1
SousCat2.2
Catégorie3
Etc... |
Pour obtenir cela, j'ai construit une table mw_categories :
Code:
1 2 3 4 5 6 7 8 9
|
`cat_id` int(10) NOT NULL auto_increment COMMENT 'Identifiant',
`cat_name` varchar(50) NOT NULL COMMENT 'Nom de la ctégorie',
`cat_desc` varchar(250) NOT NULL COMMENT 'Description des catégories',
`cat_rang` int(10) NOT NULL COMMENT 'Classement des catégories',
`cat_link` int(10) NOT NULL default '0' COMMENT 'Liens pour les sous-catégories',
PRIMARY KEY (`cat_id`),
KEY `cat_name` (`cat_name`,`cat_rang`,`cat_link`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; |
Le champ cat_link correspondant à l'id de la catégorie mère
La question :
C'est comment que je dois faire??? J'ai regardé un peu partout (sauf sous mon lit) et j'ai pas trouvé de solution.
Si vous pouviez me mettre sur la piste, je vous en serait très reconnaissant.
PS. Pour la mise en forme (décalage) ça va, c'est simplement pour ordonner mes données sous cette forme
Code:
1 2 3 4 5
|
Catégorie -> id=1 -> catLink=0
Catégorie -> id=3 ->catLink = 1
Catégorie -> id=2 -> catLink=0
Catégorie -> id=4 -> catLink=2 |
Merci pour votre aide