Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP附加if语句阻止第一个语句_Php_Sql - Fatal编程技术网

PHP附加if语句阻止第一个语句

PHP附加if语句阻止第一个语句,php,sql,Php,Sql,我有以下声明: 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 sur

我有以下声明:

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}' "; 
}

我有3张搜索表。但只有第一个名字起作用。其他人没有回应。如何更改?

请检查是否未同时设置所有$\u POST[]变量。因为,$\u POST['name']是第一个变量,如果设置了它,则不会检查其他条件。

请尝试以下操作:

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}'"; 
}

您可以在单个查询中使用多个like条件

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

浏览器将发送请求中的输入字段,即使该字段为空


无法使用isset测试字符串是否为空。你需要!==也一样。

顺便说一句,你需要搜索新事物-SQL注入。学习基本编程逻辑。如果/elseif/elseif/。。。当第一次成功匹配时,链将停止评估。您想做什么?这是对多个字段的复合搜索吗?当搜索字段为空时,如何满足第一个条件?我想在数据库中搜索名称形式:name、姓氏形式:name或peselform:pesel。因此,我有3个搜索字段,只有第一个名称有效。没有初始值,搜索表单为emptyO.K。现在我明白了逻辑。谢谢所有的答案
 $sql = "SELECT * FROM patients WHERE name LIKE '{$name}' OR LIKE '{$surname}' OR LIKE '{$pesel}' ";