Bonjour,

Depuis longtemps je créer des catégories et des sous-catégorie en utilisant une table categorie et une table sous-categorie.

Alors, quand je veux créer une sous-categorie j,ai une liste déroulante qui affiche les catégories disponible.

Je fait envoyer et dans ma table sous_categorie J,ai un numéro de sous_categorie (clef primaire autoincrémenté) , un nom et un champ categorie_id.

Maintenant, je veux pouvoir avoir des sous-sous-categorie en utilisant seulement une table.

J'ai donc lu le tutoriel http://sqlpro.developpez.com/cours/arborescence/

C'est en théorie exactement se que je cherches.

Mais je n'arrive pas a mettre ça en pratique.

Toutes les requête de se tutoriel contiennent les numéros des enregistrement pour les clauses where.

Mais dans la pratique ont ne connait pas les numéros d'enregistrement la requête doit être plus automatique ou autonome.

Voici se que j'ai fait de mon côté avant de lire ce tutoriel:

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
<table width="500" border="0" cellspacing="4" cellpadding="4">
<?
echo "<tr>";
echo "<td class=\"border3\"><b>Cat&eacute;gorie:</b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
 
$sql=mysql_query('select * from categories order by nom ASC') or die("Impossible d'ouvrir la table");
echo "*<select name='id_cat'>\n";
echo "<option value='0'>Choisir une sous-cat&eacute;gorie</option>\n";
while ($row=mysql_fetch_array($sql))
{
echo "<option value=\"".$row["id_cat"]."\">".$row["nom"]."</option>\n";
 
	$sql=mysql_query('select * from categories where id_parent='.$row["id_cat"].' order by nom ASC') or die("Impossible d'ouvrir la table");
	while ($row1=mysql_fetch_array($sql))
	{
	echo "<option value=\"".$row1["id_cat"]."\">".$row["nom"]." -> ".$row1["nom"]."</option>\n";
	}
}
echo "<br><br></td>\n";
echo "</tr>\n";
?>
</table>
Voici ma table:

CREATE TABLE categories (
id_cat int(255) NOT NULL auto_increment,
nom varchar(255) NOT NULL,
id_parent int(255) NOT NULL,
id_sous_parent int(255) NOT NULL,
ord_affiche int(255) NOT NULL,
PRIMARY KEY (id_cat)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Pouvez-vous m'aider svp?

Merci!!