使用一個或多個(多個)參數搜索表單
問題:
在先前的搜尋表單實作一次只能使用一個參數。目標是修改這個表單,讓使用者輸入一個或多個參數並接收對應的搜尋結果。
解:
為了實現這一點,我們將修改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
說明:
以上是如何修改搜尋表單以接受多個搜尋參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!