PHP附加if语句阻塞第一个

I have following statements:

if (isset($_POST['name'])) { 
    $name = $_POST['name']; 
    $sql = "SELECT * FROM patients WHERE name LIKE '{$name}' "; 
} elseif (isset($_POST['surname'])) { 
    $surname = $_POST['surname']; 
    $sql = "SELECT * FROM patients WHERE surname LIKE '{$surname}' "; 
} elseif (isset($_POST['pesel'])) { 
    $pesel = $_POST['pesel']; 
    $sql = "SELECT * FROM patients WHERE pesel LIKE '{$pesel}' "; 
}

And I have 3 search forms. But only the first one works (name). Other do not respond. How to change it?

Please check if all the $_POST[] variables are not set at the same time. Because, $_POST['name'] is the first variable and if it is set, other conditions will not be checked.

try this:

if(isset($_POST['name'])||isset($_POST['surname'])||isset($_POST['pesel'])) { 
    $name = $_POST['name']; 
    $sql = "SELECT * FROM patients WHERE name LIKE '{$name}' or surname LIKE '{$surname}' or pesel LIKE '{$pesel}'"; 
}
try this....  
if(isset($_POST['name'])) {  
$name = $_POST['name'];  
echo $name;  
$sql = "SELECT * FROM patients WHERE name LIKE '{$name}' ";  
}  
else if(isset($_POST['surname'])) {   
$surname = $_POST['surname'];   
echo $surname;  
$sql = "SELECT * FROM patients WHERE surname LIKE '{$surname}' ";  
}  
else if(isset($_POST['pesel'])) {  
$pesel = $_POST['pesel'];
echo $pesel;  
$sql = "SELECT * FROM patients WHERE pesel LIKE '{$pesel}' ";  
}   

You can use multiple like condition in single query

 $sql = "SELECT * FROM patients WHERE name LIKE '{$name}' OR LIKE '{$surname}' OR LIKE '{$pesel}' ";

The browser will send the input field in the request, even if it's empty.

You cannot test whether a string is empty with isset. You need !== "" too.