2014-01-23 47 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' 

OR

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

@Mike勃兰特,谢谢!这是一个错字,而另一种方法。 –

+0

它的工作,但现在这个查询返回只有一个值,有些时候什么都没有 –

相关问题