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

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

Susan Sarandon
Susan Sarandon原創
2024-12-26 19:44:10685瀏覽

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

具有一個或多個(多個)參數的搜尋表單

建立允許使用者輸入多個參數的搜尋表單時,重要的是要考慮搜尋結果將如何被過濾。

在提供的範例中,搜尋表單具有單獨的 ID、姓名、專業和大學輸入欄位。然後,results.php 檔案使用單獨的 if/elseif 語句分別處理每個參數。

但是,為了讓使用者輸入一個或多個參數,需要更動態的方法。這可以透過根據輸入的參數動態建立 SQL 查詢的 WHERE 子句來實現。

這裡是 results.php 檔案的修訂版本,示範了這個方法:

<?php

$wheres = array();
$params = array();

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'].'%';
}

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

while ($student = $stmt->fetch()) {
    echo '
        <tr>
            <td>'.$student['uid'].'</td>
            <td>'.$student['name'].'</td>
            <td>'.$student['major'].'</td>
            <td>'.$student['college'].'</td>
            <td><a href="?m=profile&amp;id='.$student['id'].'">

此程式碼根據輸入的參數動態建立 WHERE 子句。如果使用者僅輸入名稱,則查詢將僅按名稱過濾。如果使用者同時輸入姓名和專業,則查詢將按這兩個參數進行篩選。

這種方法可以提供更靈活和用戶友好的搜尋體驗。

以上是如何在 PHP 中建立具有多個參數的動態搜尋表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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