我發現只有第一個條件在其內部存在相同變量時才被讀取,如果條件存在,則跳過另一個條件。如何解決它?如果條件變量存在於第一個條件,則跳過另一個條件
<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);
當在顯示狀態的同時,僅與任何第一條件相匹配的數據出現了,而其它值被跳過,不讀出。例如,如果我多選教育和獎學金,url中的變量應該執行selectcriteria = education & selectcriteria =獎學金。但是,隨着另一個值與條件匹配,一個值會被跳過。
這是怎麼回事IFS工作在每一個語言,而不是隻是PHP - 只有第一個在鏈中匹配。您可能需要將對方內部的陳述嵌套在一起 - 儘管目前還不清楚您要實現的目標。我猜「標準」不能是「教育」和「madrasah」,這就是'&&'操作員正在做的事情。 – theFunkyEngineer
您正在複製很多東西。通過簡單地陳述(僞代碼),你可以擺脫很多這些:'if($ criteria){$ sqlselect =「SELECT ... WHERE criteria = $ criteria}'只需確保轉義這些變量(嘗試防止sql注入) – Kyrre