Avec le développement rapide d'Internet, les fonctions et les exigences des sites Web deviennent de plus en plus complexes. Parmi eux, la fonction de classification illimitée est un moyen très important d'organiser et de gérer les informations. Il peut aider les développeurs à organiser efficacement les informations afin que les utilisateurs puissent trouver plus rapidement ce dont ils ont besoin. Aujourd'hui, nous allons présenter comment utiliser la fonction de classification illimitée dans le développement PHP.
Qu'est-ce que la fonction de classification illimitée ?
Dans la classification traditionnelle, chaque catégorie ne peut avoir qu'une seule catégorie parent et plusieurs catégories enfants. Toutefois, dans certains scénarios complexes, cette méthode de classification sera limitée. Par exemple, un produit peut appartenir à plusieurs marques, plusieurs groupes de classification, plusieurs régions, etc. À l'heure actuelle, la fonction de classification illimitée peut fournir de meilleures solutions.
La fonction de classification illimitée, comme son nom l'indique, n'a aucune restriction de niveau. Les classifications peuvent être librement combinées et une donnée peut appartenir à plusieurs catégories. Cette fonction convient aux scénarios nécessitant une organisation flexible des données, tels que la classification des blogs, la classification des produits, la classification des actualités, etc.
Comment implémenter une fonction de classification illimitée
Ci-dessous, nous présenterons étape par étape comment implémenter une fonction de classification illimitée dans le développement PHP.
Étape 1 : Créer une table de base de données
Lors de la création d'une table de base de données, nous devons prendre en compte trois champs clés, à savoir l'ID de catégorie, le nom de la catégorie et l'ID parent de la catégorie. L'ID de catégorie est l'identifiant unique de chaque catégorie, le nom de la catégorie est utilisé pour afficher les informations de catégorie et l'ID parent de catégorie indique l'ID de catégorie parent de la catégorie.
CREATE TABLE categories
(categories
(
id
int(11) NOT NULL,
name
varchar(100) NOT NULL,
parent_id
int(11) NOT NULL,
PRIMARY KEY (id
)
);
第二步:插入分类数据
在数据库表中插入分类数据时,可以使用嵌套集合模型的方式,即用左右值描述每个分类层级组织关系,示例如下:
INSERT INTO categories
(id
, name
, parent_id
, lft
, rgt
id
int(11) NON NULL,
name
varchar(100) NON NULL,
parent_id
int(11) NOT NULL,
PRIMARY KEY (id
)
);
categories
(id
, name
, parent_id
, lft
, rgt
) VALEURS(1, 'Électrique appareils', 0, 1, 10),
(2, 'TV', 1, 2, 3),(3, 'Appareils de téléphonie mobile', 1, 4, 9),
(4, 'Smartphone', 3, 5, 6),
{
$sql = 'SELECT * FROM `categories` WHERE `parent_id` = ? ORDER BY `lft` ASC'; $stmt = $pdo->prepare($sql); $stmt->execute([$parentId]); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!empty($categories)) { $level++; $categories = array_map(function ($category) use ($level) { $category['level'] = $level; $category['children'] = getCategories($category['id'], $level); return $category; }, $categories); } return $categories;
if (!empty($categories)) { echo '<ul>'; foreach ($categories as $category) { echo '<li>' . $category['name'] . '</li>'; if (!empty($category['children'])) { showCategories($category['children']); } } echo '</ul>'; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!