当前位置:首页 > PHP

php实现分类功能实现

2026-01-30 04:52:11PHP

PHP 实现分类功能

数据库设计

创建分类表 categories,包含基本字段:

CREATE TABLE categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    parent_id INT DEFAULT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (parent_id) REFERENCES categories(id) ON DELETE CASCADE
);

parent_id 用于实现多级分类,指向父分类的 ID。

添加分类

通过表单提交分类数据并插入数据库:

// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'];
    $parent_id = $_POST['parent_id'] ?? null;

    $stmt = $pdo->prepare("INSERT INTO categories (name, parent_id) VALUES (?, ?)");
    $stmt->execute([$name, $parent_id]);
}

显示分类树

递归查询并显示多级分类:

function displayCategories($parent_id = null, $level = 0) {
    global $pdo;
    $stmt = $pdo->prepare("SELECT * FROM categories WHERE parent_id " . ($parent_id ? "= ?" : "IS NULL"));
    $stmt->execute($parent_id ? [$parent_id] : []);

    while ($category = $stmt->fetch()) {
        echo str_repeat("&nbsp;", $level * 4) . $category['name'] . "<br>";
        displayCategories($category['id'], $level + 1);
    }
}

分类下拉菜单

生成用于表单选择的分类下拉菜单:

function generateCategoryOptions($parent_id = null, $level = 0) {
    global $pdo;
    $stmt = $pdo->prepare("SELECT * FROM categories WHERE parent_id " . ($parent_id ? "= ?" : "IS NULL"));
    $stmt->execute($parent_id ? [$parent_id] : []);

    while ($category = $stmt->fetch()) {
        echo '<option value="' . $category['id'] . '">' . str_repeat("&nbsp;", $level * 4) . $category['name'] . '</option>';
        generateCategoryOptions($category['id'], $level + 1);
    }
}

分类关联

将内容与分类关联:

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT,
    category_id INT,
    FOREIGN KEY (category_id) REFERENCES categories(id)
);

查询分类内容

获取特定分类下的内容:

$category_id = $_GET['category_id'] ?? null;
$stmt = $pdo->prepare("SELECT * FROM articles WHERE category_id = ?");
$stmt->execute([$category_id]);
$articles = $stmt->fetchAll();

分类面包屑导航

显示当前分类的路径:

php实现分类功能实现

function getBreadcrumbs($category_id) {
    global $pdo;
    $breadcrumbs = [];
    while ($category_id) {
        $stmt = $pdo->prepare("SELECT * FROM categories WHERE id = ?");
        $stmt->execute([$category_id]);
        $category = $stmt->fetch();
        $breadcrumbs[] = $category;
        $category_id = $category['parent_id'];
    }
    return array_reverse($breadcrumbs);
}

标签: 功能php
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移除…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…