当前位置:首页 > PHP

php实现筛选功能实现

2026-03-13 01:35:41PHP

实现PHP筛选功能

PHP实现筛选功能通常涉及前端表单提交、后端数据处理以及数据库查询。以下是几种常见筛选功能的实现方法:

表单设计

创建HTML表单用于用户输入筛选条件,例如:

<form method="GET" action="filter.php">
    <input type="text" name="keyword" placeholder="关键词">
    <select name="category">
        <option value="">所有分类</option>
        <option value="1">分类1</option>
        <option value="2">分类2</option>
    </select>
    <input type="number" name="min_price" placeholder="最低价">
    <input type="number" name="max_price" placeholder="最高价">
    <button type="submit">筛选</button>
</form>

后端处理

在filter.php中接收并处理筛选参数:

php实现筛选功能实现

$keyword = isset($_GET['keyword']) ? trim($_GET['keyword']) : '';
$category = isset($_GET['category']) ? intval($_GET['category']) : 0;
$minPrice = isset($_GET['min_price']) ? floatval($_GET['min_price']) : null;
$maxPrice = isset($_GET['max_price']) ? floatval($_GET['max_price']) : null;

数据库查询

构建动态SQL查询语句:

$sql = "SELECT * FROM products WHERE 1=1";
$params = [];

if (!empty($keyword)) {
    $sql .= " AND (name LIKE ? OR description LIKE ?)";
    $params[] = "%$keyword%";
    $params[] = "%$keyword%";
}

if ($category > 0) {
    $sql .= " AND category_id = ?";
    $params[] = $category;
}

if ($minPrice !== null) {
    $sql .= " AND price >= ?";
    $params[] = $minPrice;
}

if ($maxPrice !== null) {
    $sql .= " AND price <= ?";
    $params[] = $maxPrice;
}

// 使用PDO预处理执行查询
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

AJAX实现动态筛选

使用jQuery实现无刷新筛选:

php实现筛选功能实现

$('#filter-form').on('submit', function(e) {
    e.preventDefault();
    $.ajax({
        url: 'filter.php',
        type: 'GET',
        data: $(this).serialize(),
        success: function(data) {
            $('#results-container').html(data);
        }
    });
});

多条件组合筛选

对于复杂筛选需求,可以构建更灵活的条件数组:

$conditions = [];
$params = [];

if (!empty($keyword)) {
    $conditions[] = "(name LIKE ? OR description LIKE ?)";
    $params[] = "%$keyword%";
    $params[] = "%$keyword%";
}

if ($category > 0) {
    $conditions[] = "category_id = ?";
    $params[] = $category;
}

$sql = "SELECT * FROM products";
if (!empty($conditions)) {
    $sql .= " WHERE " . implode(" AND ", $conditions);
}

日期范围筛选

添加日期范围筛选功能:

$startDate = isset($_GET['start_date']) ? $_GET['start_date'] : null;
$endDate = isset($_GET['end_date']) ? $_GET['end_date'] : null;

if ($startDate && $endDate) {
    $sql .= " AND created_at BETWEEN ? AND ?";
    $params[] = $startDate;
    $params[] = $endDate;
}

分页处理

结合分页实现大数据量筛选:

$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
$perPage = 10;
$offset = ($page - 1) * $perPage;

$countSql = "SELECT COUNT(*) FROM ($sql) AS total";
$stmt = $pdo->prepare($countSql);
$stmt->execute($params);
$total = $stmt->fetchColumn();

$sql .= " LIMIT $perPage OFFSET $offset";

以上方法可以根据实际需求组合使用,构建完整的筛选功能系统。

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

相关文章

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 // 创建…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form action=…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…