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