2014-01-23 5 views
-4

내가 SQL 쿼리를 실행하기 위해 노력하고있어하지만 메신저는 다음과 같은 오류가 주어진 mysqli_result 될 것으로 예상 :mysqli_fetch_array는()는 매개 변수 1, 부울

$pricerange = $_GET['pricerange']; 

$ary = explode("-",$pricerange); 

$price_min = filter_var($ary[0], FILTER_SANITIZE_NUMBER_INT); 
$price_max = filter_var($ary[1], FILTER_SANITIZE_NUMBER_INT); 

$card_data = mysqli_query($con, "SELECT * FROM builds WHERE approved = 'yes' WHERE build_price >= '$price_min' AND build_price <= '$price_max'"); 
$card_data_result = mysqli_fetch_array($card_data); 
$pricerange = $_GET['pricerange']; 

나는 오류에 대한 몇 가지 recearch 짓을했는지 그 쿼리가 허위 또는 사실 반환하기 때문에 어떤 생각이 어떻게 그것을 해결하기 위해 (이 나던 것)?

+0

참조 [이 답변]의 대신

SELECT * FROM builds WHERE approved = 'yes' and build_price BETWEEN '$price_min' AND '$price_max' 

(http://stackoverflow.com/a/11674313/250259) 이 문제를 해결하는 방법은 –

+4

두 개의'WHERE' 절이 있습니다 ... 다른 말로하면, SQL 구문 지식을 닦아야합니다. 코드에서 어떤 종류의 에러 핸들링을하고 싶지 않았다면, 이것에 대해 들었을 것입니다. –

답변

2

선택 쿼리에 두 개의 where 절을 사용했습니다.

이 시도

,

SELECT * FROM builds WHERE approved = 'yes' and build_price >= '$price_min' AND build_price <= '$price_max' 

또는

SELECT * FROM builds WHERE approved = 'yes' WHERE build_price >= '$price_min' AND build_price <= '$price_max' 
+0

나는 또한 당신의 코드에서 항상 에러 처리를해야한다고 덧붙이고 싶다. 당신은 단지 그것을 검증하지 않고 유효한 결과 집합이라고 생각하는 것으로 작업하려고해서는 안됩니다. –

+0

@Mike Brant, 감사합니다! 다른 방법을 쓰는 동안 오타가되었습니다. –

+0

이제는 작동했지만이 쿼리는 하나의 값만 반환하고 아무 것도 반환하지 않습니다. –

관련 문제