首页 > 后端开发 > php教程 > 如何在 PHP 中构建具有多个搜索参数的搜索表单?

如何在 PHP 中构建具有多个搜索参数的搜索表单?

Linda Hamilton
发布: 2024-12-17 02:08:23
原创
843 人浏览过

How to Build a Search Form with Multiple Search Parameters in PHP?

具有一个或多个(多个)参数的搜索表单

问题:

您有一个允许用户的搜索表单输入多个搜索参数,例如学号、姓名、专业或学院。您希望能够使用这些参数的任意组合来搜索学生。

答案:

要启用多个参数搜索,请动态构建基于 SQL WHERE 子句关于输入的参数用户。

解决方案:

  1. 使用 PHP 的 PDO(首选方法):

    • 创建一个数组来保存WHERE条件。
    • 迭代每个搜索参数并向数组添加相应的 WHERE 条件。
    • 内爆数组以创建单个 WHERE 子句。
    • 准备并执行 PDO使用 WHERE 子句的语句并绑定
    $wheres = [];
    $params = [];
    if (!empty($_GET['id'])) {
        $wheres[] = 'a.uid = :uid';
        $params[':uid'] = $_GET['id'];
    }
    if (!empty($_GET['major'])) {
        $wheres[] = 'a.major = :major';
        $params[':major'] = $_GET['major'];
    }
    if (!empty($_GET['name'])) {
        $wheres[] = 'b.name LIKE :name';
        $params[':name'] = '%'.$_GET['name'].'%';
    }
    // ...continue for additional parameters
    
    $sql = "SELECT * FROM user_details AS a JOIN user AS b ON a.uid = b.id";
    if (!empty($wheres)) {
        $sql .= " WHERE " . implode(' AND ', $wheres);
    }
    $stmt = $db->prepare($sql);
    $stmt->execute($params);
    登录后复制
  2. 修改现有 MySQLi 方法:

    • 检查每个非空参数并附加一个与 SQL 查询对应的 WHERE 条件。
    • 使用 AND 组合条件。
    $sql = "SELECT * FROM user_details a, user b WHERE a.uid = b.id";
    if (!empty($_GET['id'])) {
        $sql .= " AND a.uid = '" . $_GET['id'] . "'";
    }
    if (!empty($_GET['major'])) {
        $sql .= " AND a.major = '" . $_GET['major'] . "'";
    }
    if (!empty($_GET['name'])) {
        $sql .= " AND b.name LIKE '%" . $_GET['name'] . "%'";
    }
    // ...continue for additional parameters
    
    $result = mysqli_query($db, $sql);
    登录后复制

以上是如何在 PHP 中构建具有多个搜索参数的搜索表单?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板