2012-05-03 97 views
-1

我想根據以下表格來過濾mysql的結果濾波結果

www.dabndash.com/filter.php 

的過濾器我一直在試圖MySQL的代碼是:

SELECT DISTINCT * FROM paintings 
    WHERE (price BETWEEN '$min_price' AND '$max_price') 
    AND (orientation = '$orientation1' OR orientation = '$orientation2' OR orientation = '$orientation3') 
    AND (size_diagonal BETWEEN '$size_min' AND '$size_max') 
    AND (primary_color = '$primary_color' AND secondary_color = '$secondary_color') 

我不知道爲什麼該查詢不會篩選結果。即使用戶輸入任何一個字段,它也應該過濾結果。

+0

顯示您的輸出 –

+0

您應檢查其值是否存在,然後根據這些值構建查詢。 – billyonecan

+0

查詢給出的結果,但它並不過濾。請你的問題更清楚,這是目前的形式,它仍然不知道你問了什麼關於恕我直言。 – hakre

回答

-1
SELECT DISTINCT * FROM paintings WHERE (price BETWEEN '$min_price' AND '$max_price') 
          AND (orientation = '$orientation1' OR orientation = '$orientation2' OR orientation = '$orientation3') 
          AND (size_diagonal BETWEEN '$size_min' AND '$size_max') 
          AND (primary_color = '$primary_color' AND secondary); 
0

您應該只使用用戶選擇的參數並從這些參數構建查詢。看起來用戶可以將方向,尺寸和原色濾鏡清空。

如果$orientation1,例如,是空的,查詢將返回零個結果(提供的所有畫有一個非空的方向。

嘗試運行用更少的where子句中的查詢和驗證獲得預期的結果。