如果我的SQL查询下面都没有$ sPOST值,则不会输出$ srchRegion && $ srchCategory字符串。为什么?

if (($srchRegion!='00') || ($srchRegion!='') && ($srchCategory=='00') || ($srchCategory=='')) {
    return $query .= "AND region='$srchRegion'";
} elseif (($srchRegion=='00') || ($srchRegion=='') && ($srchCategory!='00') || ($srchCategory!='')) {
    return $query .= "AND category='$srchCategory'";
} elseif (($srchRegion!='00') || ($srchRegion!='') && ($srchCategory!='00') || ($srchCategory!='')) {
    return $query .= "AND region='$srchRegion' AND category='$srchCategory'";
}


有更好的方法吗?

最佳答案

与其寻找所有可能的布尔值和混乱的if-else,不如继续根据填充的相应值追加where子句。

if($srchRegion != '00' && $srchRegion != '')
  $query .= " AND region='$srchRegion'";
if($srchCategory != '00' && $srchCategory != '')
  $query .= " AND category='$srchCategory'";
return $query;


因此,$query充当查询生成器,并继续基于设置的$ _POST值添加where子句。

10-06 04:50