具有多個參數的搜尋表單
在搜尋表單中,允許使用者輸入多個參數可以增強搜尋功能。不過,這需要修改搜尋過程。
動態 WHERE 子句
啟用多個參數的關鍵是根據使用者的輸入動態建立 WHERE 子句。以下是如何在 PHP 中使用 PDO 來實現它:
$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'].'%'; }
這裡,我們建立一個陣列 $wheres 來保存條件語句,並建立一個 $params 陣列來儲存對應的參數值。對於每個非空參數,我們為 $wheres 新增一個條件並將參數儲存在 $params 中。
產生SQL 查詢
然後我們將條件連接起來$wheres 構成WHERE 子句:
if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); }
implode() 函數將條件與關鍵字“AND”。我們將其附加到基本 SQL 查詢。
執行查詢並顯示結果
接下來,我們準備並執行查詢:
$stmt = $db->prepare($sql); $stmt->execute($params);
最後,我們迭代結果集並顯示所需的學生信息,與原始類似代碼:
while ($student = $stmt->fetch()) { ... }
這種動態方法允許用戶輸入多個參數,將它們組合起來以定制搜尋結果。
以上是如何在 PHP 中為多參數搜尋表單建立動態 WHERE 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!