-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')

クエリが結果をフィルタリングしていない理由がわかりません。ユーザーがいずれかのフィールドに入力した場合でも、結果をフィルタリングする必要があります。

4

2 に答える 2

0

ユーザーが選択したパラメーターのみを使用し、それらからクエリを作成する必要があります。向き、サイズ、および原色フィルターは、ユーザーが空のままにしておくことができるようです。

たとえば$orientation1、 が空の場合、クエリはゼロの結果を返します (すべての絵画の向きが空でない場合)。

where 句を減らしてクエリを実行し、期待どおりの結果が得られることを確認してください。

于 2012-05-03T09:41:58.073 に答える
-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);
于 2012-05-03T09:31:21.803 に答える