Multi-zoekvak met dezelfde operator

Ik heb 3 zoekvakken en de gebruiker kan informatie in 3 of alle zoekvakken typen.

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

Als de persoon alle 3 doorzocht was, hoe zou ik deze er dan in plaatsen?

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

Dit is wat ik heb, maar werkt niet goed, maar ik heb iets nodig als OR/AND etce enz. Kan iemand mij alstublieft adviseren hoe het moet? Bedankt

0
WAARSCHUWING uw code is vatbaar voor SQL-injectie-aanvallen.
toegevoegd de auteur Daniel A. White, de bron
Waarom ga je door je vragen en verander je de titel en het lichaam in asadasdas asda sda sdas dasd asd asd?
toegevoegd de auteur Ben Swinburne, de bron

1 antwoord

Hiermee worden de WHERE-instructies gecombineerd als waarden worden gegeven

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