当前位置:首页 > PHP

php实现搜索界面

2026-02-16 00:20:11PHP

PHP 搜索界面实现方法

基础表单设计

创建一个简单的 HTML 表单用于接收用户搜索词,表单 method 建议使用 GET 以便保留搜索历史:

<form action="search.php" method="get">
    <input type="text" name="keywords" placeholder="输入搜索关键词">
    <button type="submit">搜索</button>
</form>

数据库查询处理

在 search.php 中处理搜索逻辑,使用预处理语句防止 SQL 注入:

if(isset($_GET['keywords'])) {
    $keywords = trim($_GET['keywords']);
    $db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

    $stmt = $db->prepare("SELECT * FROM products 
                         WHERE name LIKE :keywords 
                         OR description LIKE :keywords");
    $searchTerm = "%$keywords%";
    $stmt->bindParam(':keywords', $searchTerm);
    $stmt->execute();

    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

结果展示页面

循环输出查询结果并高亮显示匹配关键词:

php实现搜索界面

foreach($results as $item) {
    echo '<div class="result-item">';
    echo '<h3>'.preg_replace("/$keywords/i", "<mark>$0</mark>", $item['name']).'</h3>';
    echo '<p>'.preg_replace("/$keywords/i", "<mark>$0</mark>", $item['description']).'</p>';
    echo '</div>';
}

分页功能实现

添加 LIMIT 和 OFFSET 实现分页查询:

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

$stmt = $db->prepare("SELECT * FROM products 
                     WHERE name LIKE :keywords 
                     LIMIT :offset, :perPage");
$stmt->bindParam(':keywords', $searchTerm);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':perPage', $perPage, PDO::PARAM_INT);

高级搜索功能

扩展表单支持多条件筛选:

php实现搜索界面

<form action="search.php" method="get">
    <input type="text" name="keywords" placeholder="关键词">
    <select name="category">
        <option value="">所有分类</option>
        <option value="1">电子产品</option>
        <option value="2">家居用品</option>
    </select>
    <input type="number" name="min_price" placeholder="最低价格">
    <button type="submit">高级搜索</button>
</form>

AJAX 实时搜索

使用 jQuery 实现实时搜索建议:

$('#search-input').keyup(function(){
    $.get('live_search.php', {query: $(this).val()}, function(data){
        $('#suggestions').html(data);
    });
});

搜索日志记录

记录用户搜索行为以便分析:

if(!empty($keywords)) {
    $log = $db->prepare("INSERT INTO search_log 
                        (keyword, ip_address, user_agent) 
                        VALUES (?, ?, ?)");
    $log->execute([
        $keywords, 
        $_SERVER['REMOTE_ADDR'],
        $_SERVER['HTTP_USER_AGENT']
    ]);
}

标签: 界面php
分享给朋友:

相关文章

php实现购物车

php实现购物车

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

php实现socket

php实现socket

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

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php mvc 实现

php mvc 实现

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

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…

vue实现后台界面

vue实现后台界面

Vue 实现后台界面的方法 使用 Vue 实现后台界面通常需要结合 UI 框架、路由管理和状态管理工具。以下是具体实现步骤: 1. 项目初始化 使用 Vue CLI 或 Vite 创建项目: np…