問題:
您有一個允許用戶的搜尋表單輸入多個搜尋參數,例如學號、姓名、專業或學院。您希望能夠使用這些參數的任意組合來搜尋學生。
答案:
要啟用多個參數搜索,請動態建立基於 SQL WHERE 子句關於輸入的參數使用者。
解決方案:
使用PHP 的PDO(首選方法):
$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);
修改現有現有方法🎜>
$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中文網其他相關文章!