使用PHP使用空输入的不同组合进行SQL全文搜索

使用PHP使用空输入的不同组合进行SQL全文搜索,php,mysql,search,parameters,full-text-search,Php,Mysql,Search,Parameters,Full Text Search,假设我的SQL表有列Title,Price,yearsell,我想使用html页面中的输入表单搜索匹配结果 我希望用户能够根据自己的意愿将任何输入表单留空。因此,如果他们将所有字段留空,它将返回每个条目。如果他们将Title留空,但输入了maxPrice和maxAge,则无论标题如何,都会显示价格和年龄低于他们提交的maxPrice和maxAge的所有项目 我是否必须用if语句说明空白/非空白字段条目的每个组合?还是有更好的方法 例如,我希望避免出现如下代码: if($_POST['title

假设我的SQL表有列
Title
Price
yearsell
,我想使用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

    }
} 
if($\u POST['titleSearch'==“”){
如果($_POST['maxAge']==NULL){
如果($_POST['maxPrice']==NULL){
$query=$conn->prepare(“从表中选择*);
}
else if($\u POST['maxAge']!=NULL){
如果($_POST['maxPrice']==NULL){
$query=$conn->prepare(“从表中选择*
其中年龄<$\u POST['maxAge'])”;
}
#等等等等等等
}
} 

非常感谢您的帮助!

更有效的方法是:

$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']);
}

从不存储已计算的计算字段(
yearsell
)?在这种情况下,yearsell只是在某个点输入到表中的一个值,而不是真正从任何内容计算出来的值。只是一个示例变量名。