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

时间:2013-03-28 01:49:38

标签: php mysql search parameters full-text-search

假设我的SQL表有TitlePriceYearsOld列,我想使用html页面中的输入表单搜索匹配的结果。

我希望用户能够将任何他们希望的输入表格留空。因此,如果他们将所有字段留空,则会返回每个条目。如果他们将Title留空但输入了maxPricemaxAge,那么它会显示价格和年龄低于maxPricemaxAge的所有商品提交,无论标题如何。

我是否必须使用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

    }
} 

非常感谢任何帮助,谢谢!

1 个答案:

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