Мульти-окно поиска с использованием оператора Like - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть 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%'";

Это то, что у меня есть, но оно не работает должным образом, но мне нужно что-то вроде ИЛИ / И так далее и т.д. Спасибо

1 Ответ

1 голос
/ 06 декабря 2011

Это объединит операторы 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);
...