내 웹 사이트에서 searcher를하고있어 내가 선택한 쿼리에 필요한 모든 제약 조건을 포함해야합니다.하위 쿼리 내 SQL
사용자는 키워드를 쓰고 최저 가격과 최대 가격을 쓰고 일부 카테고리를 선택할 수 있지만 모든 필드를 채워서 결과를 찾지 않아도됩니다. 모든 것을 채우거나 그 중 하나만을 채워서 찾을 수 있어야합니다. 그래서 그것을 분리하기 위해 constrait를해야합니다. 같은
내가 노력하고있어 뭔가 : 그것은이 때문에 처음에는 사용자가 선택한 특정 범주를 반환 할 때문에 여분의 문제가 여기에
$var1 = $_POST['var1']; //name - type = text
$var2 = $_POST['var2']; //min price - type = integer
$var3 = $_POST['var3']; //max price - type = integer
$var4 = $_POST['var4']; //array of categories
$select_query = "SELECT * FROM objects WHERE x=1";
if($var1 != NULL || $var1 != ''){
"AND name like '%$var1%'"
}
if(($var2 != NULL || $var2 != '') AND ($var3 != NULL || $var3 != '')){
"AND price=>$var2 AND price =>$var3'"
}
는을 할 수 및 쿼리를 계속하지만, 그런 다음 카테고리 사이에 OR이 있어야합니다. 문제는 마지막 하나가 실패한다는 것입니다.
if($var4 != NULL || $var4 != ''){
" AND(";
foreach $var4 as $cat){
"id_category = $cat OR";
}
")";
}
팁이 있습니까? 감사! PHP의 내파 기능을 사용하여
코드를보고 테스트하지 않고 마지막 부분에 항상 후행 OR이 있기 때문에 마지막 부분이 실패한 것처럼 보입니다. 그래서 당신은 문법 오류를 일으키는'... AND (id_category = $ cat OR id_category = $ cat OR)'와 같은 것을 얻는다. –
필드 이름이 db 컬럼 이름에 해당 하는가? – RamRaider
예, 그 중 하나의 문제이지만, 어떻게 해결할 수 있는지 모르겠습니다. @RamRaider 예! –