假设我的SQL表有Title
,Price
,YearsOld
列,我想使用html页面中的输入表单搜索匹配的结果。
我希望用户能够将任何他们希望的输入表格留空。因此,如果他们将所有字段留空,则会返回每个条目。如果他们将Title
留空但输入了maxPrice
和maxAge
,那么它会显示价格和年龄低于maxPrice
和maxAge
的所有商品提交,无论标题如何。
我是否必须使用if语句考虑空白/非空白字段条目的每个组合?或者有更好的方法吗?
例如,我想避免看起来像这样的代码:
if($_POST['titleSearch' == "") {
if($_POST['maxAge'] == NULL) {
if($_POST['maxPrice'] == NULL) {
$query = $conn->prepare("SELECT * FROM table");
}
else if($_POST['maxAge'] != NULL) {
if($_POST['maxPrice'] == NULL) {
$query = $conn->prepare("SELECT * FROM table
WHERE age < $_POST['maxAge'])";
}
# etc etc etc
}
}
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
更有效的方法是:
$tSet = strlen($_POST['titleSearch']);
$aSet = strlen($_POST['maxAge']);
if(!$tSet && !$aSet){
$query = $conn->prepare("SELECT * FROM table");
} else if ($tSet && !$aSet){
$query = $conn->prepare("SELECT * FROM table WHERE title=" . $_POST['titleSearch']);
}