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 PHP : 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
/**
 * 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 X : Sélectionner tout - Visualiser dans une fenêtre à part
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 SQL : Sélectionner tout - Visualiser dans une fenêtre à part
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 X : Sélectionner tout - Visualiser dans une fenêtre à part
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