3
學習PHP並遇到一個我無法弄清楚的問題。我讀過PHP只有函數的作用域,所以我不確定爲什麼我的switch語句沒有改變變量的值。php:根據下拉列表更改變量的值
目標:根據用戶選擇的下拉列表更改mysql SELECT語句。
形式:
<form action="contacts_show.php" method="POST">
<select name="grade" id="grade">
<option value="all">All Levels</option>
<option value="elementary">Elementary</option>
<option value="middle">Middle</option>
<option value="senior">Senior</option>
<input type="submit" name="browse" id="browse" value="Browse" />
</form>
PHP(編輯以縮短代碼):
$levelSelected = $_POST['grade'];
if ($levelSelected == "all") {
$querySelect = "SELECT * FROM teachers ORDER BY school ASC";
} else {
$querySelect = "SELECT * FROM teachers WHERE school LIKE %$levelSelected% ORDER BY school ASC";
}
$query = $querySelect;
$result = mysqli_query($connection, $query);
confirm_query($result);
的confirm_query功能,如果需要的話:
function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed.");
}
}
當從 「所有級別」 掇選擇向下,代碼按預期運行。當選擇任何其他選項時,我的confirm_quaery函數聲明查詢失敗。
我不知道爲什麼變量的值沒有切換。
'LIKE%elementary%'=>'LIKE'%elementary%''並且爲其他人做同樣的事情。你不檢查數據庫錯誤。如果這仍然不起作用,那麼這也是一個範圍問題。 – 2014-10-16 14:28:33
你可以使用'mysqli_error'從mysqli得到確切的錯誤,或者你可以有mysqli拋出異常。 – jeroen 2014-10-16 14:30:36
你試圖解析字符串不是整數,你應該得到一個錯誤。 請嘗試'%all%'而不是%all% – Azarus 2014-10-16 14:34:58