当前位置:首页 > PHP

php 实现搜索

2026-02-14 21:58:37PHP

PHP 实现搜索功能

在 PHP 中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式:

php 实现搜索

数据库全文搜索

$searchTerm = $_GET['search'] ?? '';
$query = "SELECT * FROM articles WHERE MATCH(title, content) AGAINST(:search IN NATURAL LANGUAGE MODE)";
$stmt = $pdo->prepare($query);
$stmt->execute([':search' => $searchTerm]);
$results = $stmt->fetchAll();

LIKE 模糊搜索

$searchTerm = '%' . $_GET['search'] . '%';
$query = "SELECT * FROM products WHERE name LIKE :search OR description LIKE :search";
$stmt = $pdo->prepare($query);
$stmt->execute([':search' => $searchTerm]);

使用 Elasticsearch

对于大型项目,可以集成 Elasticsearch:

php 实现搜索

$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'match' => [
                'name' => $_GET['search']
            ]
        ]
    ]
];
$response = $client->search($params);

AJAX 实时搜索

前端配合 AJAX 实现实时搜索:

// JavaScript 部分
document.getElementById('search').addEventListener('keyup', function() {
    fetch('search.php?q=' + this.value)
        .then(response => response.json())
        .then(data => updateResults(data));
});
// search.php
header('Content-Type: application/json');
echo json_encode($searchResults);

安全注意事项

// 始终对用户输入进行清理
$searchTerm = filter_var($_GET['search'], FILTER_SANITIZE_STRING);
// 使用预处理语句防止 SQL 注入
$stmt = $pdo->prepare("...");

高级搜索功能

实现多条件搜索:

$filters = [];
if (!empty($_GET['category'])) {
    $filters[] = "category_id = " . (int)$_GET['category'];
}
if (!empty($_GET['price_min'])) {
    $filters[] = "price >= " . (float)$_GET['price_min'];
}
$where = $filters ? 'WHERE ' . implode(' AND ', $filters) : '';
$query = "SELECT * FROM products $where";

搜索结果分页

$page = max(1, (int)$_GET['page'] ?? 1);
$perPage = 10;
$offset = ($page - 1) * $perPage;
$query = "SELECT * FROM products WHERE ... LIMIT $offset, $perPage";

标签: php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

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

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php 实现无限分类

php 实现无限分类

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、菜单管理等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 这是最简单的实现方式,每个分类记录存储其…