2014-01-23 81 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

它的工作,但現在這個查詢返回只有一個值,有些時候什麼都沒有 –

相關問題