当前位置:首页 > PHP

php搜索功能的实现

2026-04-02 22:56:46PHP

实现基础搜索功能

使用SQL的LIKE语句进行简单关键词匹配,适用于小型数据库或低流量场景。示例代码展示如何连接数据库并执行搜索查询。

$keyword = $_GET['keyword'];
$conn = new mysqli("localhost", "username", "password", "database");
$sql = "SELECT * FROM products WHERE name LIKE '%".$conn->real_escape_string($keyword)."%'";
$result = $conn->query($sql);

使用全文索引优化性能

对于MySQL数据库,在相关字段上创建FULLTEXT索引能显著提高搜索效率。需要修改表结构并采用MATCH AGAINST语法。

php搜索功能的实现

// 建表时添加全文索引
ALTER TABLE products ADD FULLTEXT(name, description);

// PHP查询代码
$sql = "SELECT * FROM products WHERE MATCH(name, description) AGAINST('".$conn->real_escape_string($keyword)."')";

实现分页功能

大数据量搜索结果需要分页显示,通过LIMIT和OFFSET参数控制每页显示数量。计算总页数提供完整分页导航。

$per_page = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $per_page;

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM products 
        WHERE MATCH(name, description) AGAINST('$keyword') 
        LIMIT $offset, $per_page";

$total_results = $conn->query("SELECT FOUND_ROWS()")->fetch_row()[0];
$total_pages = ceil($total_results / $per_page);

添加高级搜索选项

扩展基础搜索功能,允许用户组合多个条件进行精确查询。构建动态SQL语句时需注意安全过滤。

php搜索功能的实现

$conditions = [];
if(!empty($_GET['keyword'])) {
    $conditions[] = "MATCH(name,description) AGAINST('".$conn->real_escape_string($_GET['keyword'])."')";
}
if(!empty($_GET['category'])) {
    $conditions[] = "category_id = ".(int)$_GET['category'];
}
if(!empty($_GET['price_min'])) {
    $conditions[] = "price >= ".(float)$_GET['price_min'];
}

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

搜索结果高亮显示

使用PHP字符串函数对结果中的关键词进行标记,增强用户体验。注意HTML特殊字符的转义处理。

function highlight_keyword($text, $keyword) {
    if(empty($keyword)) return htmlspecialchars($text);
    return preg_replace(
        "/(".$keyword.")/i", 
        '<span class="highlight">$1</span>', 
        htmlspecialchars($text)
    );
}

实现搜索建议功能

通过AJAX请求获取搜索建议,快速响应用户输入。数据库查询使用LIKE配合LIMIT返回有限结果。

// suggest.php
$term = $_GET['term'];
$sql = "SELECT name FROM products WHERE name LIKE '%".$conn->real_escape_string($term)."%' LIMIT 5";
$result = $conn->query($sql);
$suggestions = [];
while($row = $result->fetch_assoc()) {
    $suggestions[] = $row['name'];
}
echo json_encode($suggestions);

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

相关文章

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

php实现短信验证

php实现短信验证

PHP实现短信验证的步骤 选择合适的短信服务提供商 国内常见的短信服务提供商包括阿里云短信、腾讯云短信、云片等。注册账号并获取API密钥和签名模板是第一步。这些平台通常提供详细的开发文档和SDK。…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…