對不起,如果該標題含糊不清,我什至不能想到要調用什麼我想要做的...將更新給定的評論。匹配所有選項中的所有參數,然後查詢數據庫
我有兩組複選框第一個(稱爲代碼)集有5個選項,然後第二個集有20個選項(稱爲家庭)。目前,爲了構建一個WHERE語句爲我查詢我這樣做:
if(isset($_POST['code']) && !empty($_POST['code'])){
foreach($_POST['code'] as $key=>$value){
if($value==1) $criteria[] = "code='".mysql_escape_string($key)."'";
}
$criteria = implode(' OR ', $criteria);
}
if(isset($_POST['family']) && !empty($_POST['family'])){
foreach($_POST['family'] as $key=>$value){
if($value==1) $family_criteria[] = "family='".mysql_escape_string($key)."'";
}
$family_criteria = implode(' OR ', $family_criteria);
}
,這裏是查詢
WHERE $criteria AND $family_criteria ORDER BY ....
這導致「的一部分,其代碼= 1或代碼= 2和家庭=瓊斯ORDER BY ......」
而我需要做的是‘BY ...’
將每個OR標準塊放在括號中。 '(code = 1 OR code = 2)AND(family = jones)' – andrewsi