当前位置:首页 > 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
分享给朋友:

相关文章

vue实现tab功能

vue实现tab功能

Vue 实现 Tab 功能的方法 使用动态组件和 v-if 指令 通过 v-if 或 v-show 控制不同 Tab 内容的显示与隐藏。这种方法适合简单的 Tab 切换需求。 <templat…

vue实现分页功能

vue实现分页功能

Vue 分页功能实现 在 Vue 中实现分页功能通常需要结合后端 API 或前端数据分页逻辑。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在 Vue 组件中处理分页逻辑。…

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开放…