Afficher les catégories avec des sous-catégories et n-sous-catégories à l'aide de PHP+MySQL
J'ai un problème avec mon code. Quelle est la meilleure façon d'afficher toutes les catégories avec la n-sous-catégories?
Ma base de données MySQL ressemble:
CREATE TABLE categories (
category_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
name TEXT NOT NULL,
user INT NOT NULL,
PRIMARY KEY (category_id),
INDEX parent (parent_id)
);
Où user
est l'id d'une autre table (si catégorie ont user = '2'
, utilisateur avec id = '2'
peut voir que la catégorie)
category_id parent_id name user
1 0 Main category 1 2
2 1 Subcategory 1 2
3 1 Subcategory 2 2
4 3 SubSubcategory 1 2
Mon code php:
<?php
include('config.php'); //Mysql connect file
//get id from user
if($_GET['id'] != $user_id) {
$id = $_GET['id'];
//check to make sure the user is an admin, who can change mysql
$result = mysql_query("SELECT * FROM users WHERE username = '$username' AND admin = '1'");
$rowCheck = mysql_result($result, 0);
//if the query returns a number, we know the user is an admin. And here we can VIEW our categories
if($rowCheck > 0) {
$user_result = mysql_query("SELECT * FROM users, categories WHERE id = '$id'");
while($row = mysql_fetch_array($user_result)) { ?>
<ol>
<li><a href=""><?php echo $row['name']; ?></a></li>
</ol>
<?php }
} else {
echo "You are not admin";
}
//bla bla bla etc.
...
}
Comment puis-je afficher des catégories comme
<ol>
<li>
<a href="">Main category 1</a>
<ol>
<li><a href="">Subcategory 1</a></li>
<li><a href="">Subcategory 2</a>
<ol>
<li><a href="">Subsubcategory 1</a></li>
</ol>
</li>
</ol>
</li>
</ol>
- Est-il une limite sur les sous-catégories?\
Vous devez vous connecter pour publier un commentaire.
Essayer cette
J'ai essayé de faire de mon mieux pour résoudre votre requête,recoupez
table name and columns
selon votreschema
.Essayez d'utiliser Mysqli extension au lieu de Mysql
<ol></ol><li></li>
-tags coz il existe de nombreux, mais vous avez toutes les données présentes dans une seule requête. Supplémentaires requêtes de base de données ne sont pas nécessaires.