首頁 >後端開發 >php教程 >如何在 PHP 中建立具有多個搜尋參數的搜尋表單?

如何在 PHP 中建立具有多個搜尋參數的搜尋表單?

Linda Hamilton
Linda Hamilton原創
2024-12-17 02:08:23888瀏覽

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. 修改現有現有方法🎜>

      檢查每個非空參數並附加一個與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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn