Php 当变量存在于第一个条件中时跳过另一个if条件
我发现只有当第一个if条件中有相同的变量并且跳过另一个else 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
<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注入)