使用like运算符的多搜索框

时间:2011-12-06 17:58:22

标签: php sql-like

我有3个搜索框,用户可以在任何3个或全部3个搜索框中输入信息。

$user = $_POST['user']; 
$firstname = $_POST['firstname'];   
$lastname = $_POST['lastname']; 

$query = "SELECT user.user, user.firstname, user.lastname
          FROM user WHERE type = 'Owner' AND user LIKE '%$user%'";

如果这个人全部搜索3,我怎么把它们放进去?

 $query = "SELECT user.user, user.firstname, user.lastname 
           FROM user WHERE type = 'Owner' AND user LIKE '%$user%' 
           OR/AND type = 'Owner' AND fname LIKE '%$firstname%' 
           OR/AND type = 'Owner' AND lname LIKE '%$lastname%'";

这就是我所拥有的但是不能正常工作但是我需要像OR / AND等一样的东西......有人可以告诉我该怎么做吗?感谢

1 个答案:

答案 0 :(得分:1)

如果给出了值

,这将合并WHERE语句
$user      = mysql_real_escape_string($_POST['user']); 
$firstname = mysql_real_escape_string($_POST['firstname']);   
$lastname  = mysql_real_escape_string($_POST['lastname']);

$where[] = "type='Owner'";
if(strlen($user) > 0){
    $where[] = "user LIKE '%$user%'";
} 
if(strlen($firstname) > 0){
    $where[] = "firstname LIKE '%$firstname%'";
}
if(strlen($lastname) > 0){
    $where[] = "lastname LIKE '%$lastname%'";
}
$query = "SELECT user.user, user.firstname, user.lastname
          FROM user WHERE ". implode(' AND ', $where);