2014-01-23 5 views
-4

Я пытаюсь выполнить запрос SQL, но им получаю следующее сообщение об ошибке: mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, булево данныйmysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, булево дал

Мой код :

$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

Престола [этот ответ] (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' and build_price BETWEEN '$price_min' AND '$price_max' 

вместо

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

Я также хотел бы добавить, что ваш код должен всегда иметь обработку ошибок. Вы не должны просто пытаться работать с тем, что вы считаете допустимым набором результатов, не проверив его сначала. –

+0

@ Майк Брант, спасибо! это была опечатка, давая другой метод. –

+0

Это сработало, но теперь этот запрос возвращает ТОЛЬКО одно значение и несколько раз ничего –

Смежные вопросы