首頁 >後端開發 >php教程 >如何修改搜尋表單以接受多個搜尋參數?

如何修改搜尋表單以接受多個搜尋參數?

DDD
DDD原創
2025-01-03 18:24:40990瀏覽

How Can I Modify a Search Form to Accept Multiple Search Parameters?

使用一個或多個(多個)參數搜索表單

問題:

在先前的搜尋表單實作一次只能使用一個參數。目標是修改這個表單,讓使用者輸入一個或多個參數並接收對應的搜尋結果。

解:

為了實現這一點,我們將修改PHP程式碼,根據輸入參數動態建構WHER E子句

已修改search.php:

<?php

$wheres = [];
$params = [];

if (!empty($_POST['id']) && isset($_POST['id'])) {
    $wheres[] = 'a.uid = :uid';
    $params[':uid'] = $_POST['id'];
}
if (!empty($_POST['major']) && isset($_POST['major'])) {
    $wheres[] = 'a.major = :major';
    $params[':major'] = $_POST['major'];
}
if (!empty($_POST['college']) && isset($_POST['college'])) {
    $wheres[] = 'a.college = :college';
    $params[':college'] = $_POST['college'];
}
if (!empty($_POST['name']) && isset($_POST['name'])) {
    $wheres[] = 'b.name LIKE :name';
    $params[':name'] = '%' . $_POST['name'] . '%';
}

$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);

// Display the results as in the original code

說明:

  1. 說明:
  2. 為WHERE 子句條件與參數初始化空數組。
  3. 檢查每個輸入參數並將對應的條件和參數加到陣列。
  4. 透過動態包含組合的 WHERE 子句條件來建立 SQL 查詢。
使用帶有命名參數的 PDO 準備並執行 SQL 語句。

將搜尋結果顯示為在原始實作中。 透過使用此方法,使用者現在可以輸入多個參數並根據所有指定的結果取得結果標準。

以上是如何修改搜尋表單以接受多個搜尋參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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