【发布时间】:2018-12-31 19:00:37
【问题描述】:
我正在制作 metrimonial 网站,我想根据下拉菜单中具有不同年龄组的条件进行搜索查询
<select class="form-input" id="age" name="age" >
<option value="Age"> <div class="dot"></div> Age</option>
<option value="1"> <div class="dot"></div> 0-20/option>
<option value="2"> <div class="dot"> </div>21-30</option>
<option value="3"> <div class="dot"></div> 31-40</option>
<option value="4"> <div class="dot"></div> >40 </option>
</select>
我想显示所有满足上述任何年龄条件的用户 我尝试在 sql 中使用上述 switch case,但没有得到任何结果。
$age = mysqli_real_escape_string($db, $_POST['age']);
echo $age;
switch ($age) {
case 1: $age = ' AND age BETWEEN 100 AND 130 '; break;
case 2: $age = ' AND age BETWEEN 131 AND 150 '; break;
case 3: $age = ' AND age BETWEEN 151 AND 200 '; break;
}
$result = mysqli_query($db,
"SELECT *
FROM approved_user
WHERE
first_name= '$fn'
OR age=$age "
) or die(mysqli_error($db));
while ($row3 = mysqli_fetch_array($result)) {
$id = $row3['id'];
$fname = $row3['first_name'];
$lname = $row3['surname'];
$dob = $row3['dob'];
$gender = $row3['gender'];
$age = $row3['age'];
}
所以请帮忙。
【问题讨论】:
-
如果您检查mysqli errors,您会注意到您遇到了语法错误,因为
WHERE (first_name = 'bob') OR ( AND age between 100 and 130)不是有效的语法。删除 AND -
还是不行
-
在查询后检查 mysqli errors 以找出失败的原因。由于您没有使用prepared statements,因此您可以尝试回显您的查询并直接在数据库中运行它以查看它是否在那里工作。