前提・実現したいこと
いずれかのチェックでも一致したものを検索でヒットするようにしたい
該当のソースコード
・ ・ //checkbox「トップス」 if (isset($tops)) { $sql .= " AND A.c_tops_short = 0 "; $sql .= " AND A.c_tops = 1 "; } //checkbox「ボトムス」 if (isset($bottoms)) { $sql .= " AND ( A.bottoms <> 1 OR A.bottoms is null) "; $sql .= " AND A.bottoms_code = 5 "; } ・ ・
内容/詳細
チェックボックス検索項目に「トップス」「ボトムス」があります。
上記がその各チェック項目の検索条件を書いています。
「トップス」のみチェックを入れて検索した場合は「トップス」の商品が検索でヒットしますが、「トップス」と「ボトムス」両方にチェックを入れ検索した場合は1件もヒットしません。。
おそらく現状ですとくくりを別で書いている(ORを使っていない?)ためチェックを入れた全ての条件を満たすもの?
しかヒットしていないような気がします。。
これをいずれかのチェックに該当するものでも検索ヒットするように書き換えたいです。
試してみたソースコード
if (isset($tops) && isset($bottoms)) { //両方チェックした場合 $sql .= " AND ((A.c_tops_short = 0 AND A.c_tops = 2) OR ((A.bottoms <> 1 OR A.bottoms is null) AND A.bottoms_code = 71))"; } else { if (//トップスだけの場合) { ・・・ } if (//ボトムスだけの場合) { ・・・ } }
カッコでひと括りにしてORにするような気がするのですが、方法がわからず手が詰まっています。
何卒ご教授のほどお願いいたします。
回答1件
あなたの回答
tips
プレビュー