2011-12-06 33 views
0

我有3个搜索框,用户可以将信息输入到任意3个或全部3个搜索框中。使用like运算符的多搜索框

$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%'"; 

这是我有,但不能正常工作,但我需要这样的东西或/与etce等..可有人请告诉我该怎么办呢?由于

+1

本文将结合WHERE语句** WARNING **你的代码容易受到SQL注入攻击。 –

+0

你为什么要检查你的问题,并将标题和正文改为asdaasdas asda sda sdas dasd asd asd? –

回答

1

如果值给出

$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);