【发布时间】:2016-01-14 22:58:15
【问题描述】:
我有一个带有 3 个选择框的表单:年龄、房间、类型。
<form action="results.php" method="get">
<div class="form-group">
<select name="age">
<option value>Any</option>
<option value="1">15</option>
<option value="2">25</option>
<option value="3">30</option>
<option value="4">40</option>
</select>
</div>
<div class="form-group">
<select name="room">
<option value>Any</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<div class="form-group">
<select name="type">
<option value>Any</option>
<option value="1">Personal</option>
<option value="2">Business</option>
</select>
</div>
</form>
我想用 PDO 做的是做一个小的搜索。 如果所有变量都为空,那么我的条件是:
$search = $db->query("SELECT * FROM table");
如果其中 1 个(例如年龄)不为空,那么我有:
if(!empty($_GET['age'])){
$age = $_GET['age'];
$search = $db->query("SELECT * FROM table WHERE age = '$age'");
}
现在,如果其中 2 个是 npt 空的,我有:
if(!empty($_GET['age']) && !empty($GET['room'])){
$age = $_GET['age'];
$room = $_GET['room'];
$search = $db->query("SELECT * FROM table WHERE age = '$age' AND room = '$room'");
}
为了避免所有可能的搜索组合,如果不为空,我如何使用该词进行搜索。我过去做过一个:
if(!empty($age)){
$where = "WHERE age = '$age'";
}
if(!empty($room)){
$where .= "and room = '$room'";
}
$query = "SELECT * FROM table $where";
如何使用 PDO 实现它? :/
【问题讨论】: