Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 - Fatal编程技术网

Php 当变量存在于第一个条件中时跳过另一个if条件

Php 当变量存在于第一个条件中时跳过另一个if条件,php,Php,我发现只有当第一个if条件中有相同的变量并且跳过另一个else if条件时,它才被读取。如何解决 <select name='selectcriteria' class="form-control" multiple> <option value="education">Education</option> <option value="orphan">Orphan</option> <option value="madrasah

我发现只有当第一个if条件中有相同的变量并且跳过另一个else if条件时,它才被读取。如何解决

<select name='selectcriteria' class="form-control" multiple>
<option value="education">Education</option>
<option value="orphan">Orphan</option>
<option value="madrasah">Madrasah</option>
<option value="scholarship">Scholarship</option>
<option value="socialwalfare">Social Walfare</option>
</select>

If(isset($_GET['selectcriteria'])){
$criteria=$_GET['selectcriteria'];



if($criteria=='education'){
 $sqlselect="SELECT * FROM criteria WHERE criteria ='education'";
}
else if($criteria=='madrasah'){
$sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah'";
}
else if($criteria=='orphan'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'orphan'";
}
else if($criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'scholarship'";
}
else if($criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'socialwalfare'";
}
else if($criteria=='education'&&$criteria=='madrasah'){
 $sqlselect="SELECT * FROM criteria WHERE criteria ='education' OR criteria = 'madrasah'";
}
else if($criteria=='education'&&$criteria=='orphan'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria= 'orphan'";
}
else if($criteria=='education'&&$criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'scholarship'";
}
else if($criteria=='education'&&$criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'socialwalfare'";
}
else if($criteria=='education'&&$criteria=='madrasah'&&$criteria=='orphan'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'madrasah' OR criteria = 'orphan'";
}
else if($criteria=='education'&&$criteria=='madrasah'&&$criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'madrasah' OR criteria = 'scholarship'";
}
else if($criteria=='education'&&$criteria=='madrasah'&&$criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'madrasah' OR criteria = 'socialwalfare'";
}
else if($criteria=='education'&&$criteria=='madrasah'&&$criteria=='socialwalfare'&&$criteria=='orphan'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'education' OR criteria = 'madrasah' OR criteria = 'socialwalfare' OR criteria= 'orphan'";
}
else if($criteria=='madrasah'&&$criteria=='orphan'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR criteria = 'orphan'";
}
else if($criteria=='madrasah'&&$criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR criteria = 'scholarship'";
}
else if($criteria=='madrasah'&&$criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR citeria = 'socialwalfare'";
}
else if($criteria=='madrasah'&&$criteria=='orphan'&&$criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR criteria = 'orphan' OR criteria = 'scholarship'";
}
else if($criteria=='madrasah'&&$criteria=='orphan'&&$criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR criteria = 'orphan' OR criteria ='socialwalfare'";
}
else if($criteria=='madrasah'&&$criteria=='scholarship'&&$criteria=='socialwalfare'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'madrasah' OR criteria = 'scholarship' OR criteria='socialwalfare'";
}
else if($criteria=='orphan'&&$criteria=='scholarship'){
 $sqlselect="SELECT * FROM criteria WHERE criteria = 'orphan' OR criteria = 'scholarship'";
}
else if($criteria=='orphan'&&$criteria=='socialwalfare'){
$sqlselect="SELECT * FROM criteria WHERE criteria = 'orphan' or criteria = 'socialwalfare'";
}
else if($criteria=='orphan'&&$criteria=='scholarship'&&$criteria=='socialwalfare'){
$sqlselect="SELECT * FROM criteria WHERE criteria = 'orphan' OR criteria = 'scholarship' OR criteria = 'socialwalfare'";
}
else if($criteria=='scholarship'&&$criteria=='socialwalfare'){
$sqlselect="SELECT * FROM criteria WHERE criteria = 'scholarship' OR criteria = 'socialwalfare'";
}

$resultselect = mysqli_query($conn, $sqlselect);

教育类
孤儿
宗教学校
学问
社会福利
如果(isset($\u GET['selectcriteria'])){
$criteria=$\u GET['selectcriteria'];
如果($criteria=='education'){
$sqlselect=“从条件中选择*,其中条件=”教育“;
}
否则,如果($criteria=='madrasah'){
$sqlselect=“从标准中选择*,其中标准='madrasah';
}
else if($criteria==“孤立”){
$sqlselect=“从条件中选择*,其中条件=‘孤立’;
}
其他条件(标准==‘奖学金’){
$sqlselect=“从标准中选择*,其中标准=‘奖学金’;
}
如果($criteria=='socialwalfare',则为else){
$sqlselect=“从标准中选择*,其中标准='socialwalfare';
}
否则如果($criteria=='education'&&$criteria=='madrasah'){
$sqlselect=“从标准中选择*,其中标准=‘教育’或标准=‘宗教学校’”;
}
如果($criteria=='education'&&$criteria=='orphan'){
$sqlselect=“选择*标准,其中标准=‘教育’或标准=‘孤儿’”;
}
否则如果($criteria=='education'&&$criteria=='scholarship'){
$sqlselect=“从标准中选择*,其中标准=‘教育’或标准=‘奖学金’;
}
如果($criteria=='education'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准=‘教育’或标准=‘社会福利’”;
}
如果($criteria=='education'&&$criteria=='madrasah'&&$criteria=='orphan'){
$sqlselect=“从标准中选择*,其中标准=‘教育’或标准=‘宗教学校’或标准=‘孤儿’;
}
否则如果($criteria=='education'&&$criteria=='madrasah'&&$criteria=='scholarship'){
$sqlselect=“选择*标准,其中标准=‘教育’或标准=‘宗教学校’或标准=‘奖学金’”;
}
如果($criteria=='education'&&$criteria=='madrasah'&&$criteria=='socialwalfare'){
$sqlselect=“选择*标准,其中标准=‘教育’或标准=‘宗教学校’或标准=‘社会福利’”;
}
如果($criteria=='education'&&$criteria=='madrasah'&&$criteria=='socialwalfare'&&&$criteria=='Orient'){
$sqlselect=“选择*标准,其中标准=‘教育’或标准=‘宗教学校’或标准=‘社会福利’或标准=‘孤儿’;
}
如果($criteria=='madrasah'&&$criteria=='orphan'){
$sqlselect=“从标准中选择*,其中标准=‘宗教学校’或标准=‘孤儿’;
}
否则如果($criteria=='madrasah'&&$criteria=='scholarship'){
$sqlselect=“从标准中选择*,其中标准='madrasah'或标准='scholarship'”;
}
否则如果($criteria=='madrasah'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准='madrasah'或citeria='socialwalfare'”;
}
如果($criteria=='madrasah'&&$criteria=='orphan'&&$criteria=='scholarship'){
$sqlselect=“从标准中选择*,其中标准=‘宗教学校’或标准=‘孤儿’或标准=‘奖学金’;
}
如果($criteria=='madrasah'&&$criteria=='orphan'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准=‘宗教学校’或标准=‘孤儿’或标准=‘社会福利’”;
}
如果($criteria=='madrasah'&&$criteria=='scholarship'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准='madrasah'或标准='scholarship'或标准='socialwalfare'”;
}
如果($criteria=='orphan'&&$criteria=='scholarship'){
$sqlselect=“从标准中选择*,其中标准=‘孤儿’或标准=‘奖学金’;
}
如果($criteria=='orphan'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准=‘孤儿’或标准=‘社会福利’”;
}
如果($criteria=='orphan'&&$criteria=='scholarship'&&$criteria=='socialwalfare'){
$sqlselect=“从标准中选择*,其中标准=‘孤儿’或标准=‘奖学金’或标准=‘社会福利’”;
}
如果($criteria=='scholarship'&&$criteria=='socialwalfare'){
$sqlselect=“选择*标准,其中标准=‘奖学金’或标准=‘社会福利’”;
}
$resultselect=mysqli_查询($conn,$sqlselect);

当它在while条件中显示时,仅显示与任何第一个条件匹配的数据,而跳过并不读取其他值。例如,如果我多重选择教育和奖学金,url中的变量应携带selectcriteria=education&selectcriteria=scholarship。但是,一个值将被跳过,作为与条件匹配的另一个值选项。

由于它是一个多选项,因此您将获得多个值,因此您可以这样使用它:

$selected = $_GET['selectcriteria'];
$values = explode(',', $selected);
foreach($values as $criteria) {
   $sqlselect[] = "criteria ='" . $criteria . "'";
}

$sqlselect = implode(' OR ', $sqlselect);

$query = "SELECT * FROM criteria WHERE 1 AND ($sqlselect);
备选案文2:

我相信,你也可以在子句中使用

$selected = $_GET['selectcriteria'];
$values = explode(',', $selected);
$joinValues implode("' ", $values);
$query = "SELECT * FROM criteria WHERE criteria in ('" . $joinValues . "');

我不熟悉php的语法,但可以执行以下操作:

有一个字符串,上面写着=“从条件中选择*,其中条件位于(”

然后,无论在“选择”菜单中选择了什么值,您都可以使用它们附加到上面定义的字符串中,最后正确地关闭SQL字符串

如果(selectedvalue==abc){ 附加到字符串“abc” }

如果(selectedvalue==xyz){ 附加到字符串“xyz” }


最后加上“)”

这就是ifs在每种语言中的工作方式,而不仅仅是PHP-只有第一种语言在一个链中匹配。您可能需要将if语句嵌套在彼此内部-尽管不清楚您试图实现什么。我想
标准
不能既是“教育”又是“宗教学校”,这就是
&&
操作符正在做的。您复制了很多。您可以通过简单地声明(psuedo代码):
if($criteria){$sqlselect=“SELECT…”WHERE criteria=$criteria}
来摆脱这些变量(尝试并防止sql注入)