如果术语为空,PHP搜索匹配所有

时间:2014-01-13 18:12:21

标签: php

我为我的网站高级搜索编写了一个简单的搜索算法。

高级搜索有几个类别可以帮助用户限制他/她的搜索。 %$variable%是我使用的匹配项。如果标题为空,我希望数据库返回每个可能的匹配...应该在此代码中添加/删除什么?

if(isset($_POST['type']) && $_POST['type'] != 0)
{
    $type = $_POST['type'];
    if($wh == true) 
    {
        $statement .= " AND `type` = '$type' ";
    }
    else
    {
        $wh = false;
        $statement .= " WHERE `type` = '$type' ";
    }   
}

if(isset($_POST['sex']) && $_POST['sex'] != 0)
{
    $sex = $_POST['sex'];
    if($wh == true) 
    {
        $statement .= " AND `sex` = '$sex' ";
    }
    else
    {
        $wh = false;
        $statement .= " WHERE `sex` = '$sex' ";
    }   
}


if(isset($_POST['start']) && $_POST['start'] != 0)
{
    $start = $_POST['start'];
    if($wh == true) 
    {
        $statement .= " AND `start` > '$start' ";
    }
    else
    {
        $wh = false;
        $statement .= " WHERE `start` > '$start' ";
    }   
}

if($wh==true)
{

$statement .= " $branch_sentence AND( `title` LIKE '%$search_term%' OR `content` LIKE '%$search_term%' OR `keywords` LIKE '%$search_term%')  ORDER BY stars DESC ";
}
else
{
$statement .= " WHERE `title` LIKE '%$search_term%' OR `content` LIKE '%$search_term%' OR `keywords` LIKE '%$search_term%' ORDER BY stars DESC ";   
}

 // echo $statement;

if($transorder = $site_db->query($statement))
{

    $i=0;
    while($row_obj = $transorder->fetch_object())
    {
        $item[$i]['id'] = $row_obj->id;
        $item[$i]['pic_main'] = $row_obj->pic_main;
        $item[$i]['title'] = $row_obj->title;
        $item[$i]['province'] = $row_obj->province;
        $item[$i]['stars'] = $row_obj->stars;       
        $i++;
    }
}

    }
}

1 个答案:

答案 0 :(得分:1)

出了什么问题:

if (empty($_POST['title']))
{
   $statement = "SELECT id, pic_main, title, province, stars FROM "; // Incomplete b/c I don't know your table name from the question.
}