实现无限分类的方法有很多种,以下是一种常见的方法:
以下是一个示例代码:
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
// 获取所有分类的层级关系
function getCategories($parent_id = 0, $level = 0) {
global $db;
$stmt = $db->prepare('SELECT * FROM categories WHERE parent_id = :parent_id');
$stmt->bindParam(':parent_id', $parent_id);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $result) {
echo str_repeat('-', $level) . $result['name'] . '<br>';
getCategories($result['id'], $level + 1);
}
}
// 查询某个分类的所有子分类
function getChildCategories($parent_id) {
global $db;
$stmt = $db->prepare('SELECT * FROM categories WHERE parent_id = :parent_id');
$stmt->bindParam(':parent_id', $parent_id);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $result) {
echo $result['name'] . '<br>';
getChildCategories($result['id']);
}
}
// 查询某个分类的所有父级分类
function getParentCategories($category_id) {
global $db;
$stmt = $db->prepare('SELECT * FROM categories WHERE id = :category_id');
$stmt->bindParam(':category_id', $category_id);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
echo $result['name'] . '<br>';
getParentCategories($result['parent_id']);
}
}
// 获取所有分类的层级关系
getCategories();
// 查询某个分类的所有子分类
getChildCategories(1);
// 查询某个分类的所有父级分类
getParentCategories(6);
以上代码是一个简单的示例,你可以根据自己的需求进行相应的修改和扩展。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站