少し前に質問させていただきましたが、質問がわかりにくかったので少し修正させていただきます。どうかよろしくお願い致します。こだわり条件の範囲でandで絞り込む検索ができないのですが、どのようにしたら実現できるのでしょうか?多分、SQL文だけの問題ではなく、テーブルにも問題があると思いますのでテーブルの構造、SQL文をどのように変更すればkid(こだわりの範囲)をandで絞り込むような検索が実現できるのかご教授お願いしたいと思っております。欲を言えばこだわりの範囲はor検索とand検索を切り替えれ可能にしたいと思っております。切り替え可能にするにはHTMLのフォームを付け足さなければならないと思っており、少しややこしくなってしまいますが何卒よろしくお願い致します。概要は下記のようになっております。//フォーム<table><tr><th>こだわり条件</th><td><input type="checkbox" name="kid[]" value="1" <?php if (isset($_REQUEST['kid']) and in_array('1',$_REQUEST['kid'])) print 'checked'; ?>/>新築<input type="checkbox" name="kid[]" value="2" <?php if (isset($_REQUEST['kid']) and in_array('2',$_REQUEST['kid'])) print 'checked'; ?>/>南向き<input type="checkbox" name="kid[]" value="3" <?php if (isset($_REQUEST['kid']) and in_array('3',$_REQUEST['kid'])) print 'checked'; ?>/>セキュリティ充実<input type="checkbox" name="kid[]" value="4" <?php if (isset($_REQUEST['kid']) and in_array('4',$_REQUEST['kid'])) print 'checked'; ?>/>市街地が近い<br /><input type="checkbox" name="kid[]" value="5" <?php if (isset($_REQUEST['kid']) and in_array('5',$_REQUEST['kid'])) print 'checked'; ?>/>内装リフォーム<input type="checkbox" name="kid[]" value="6" <?php if (isset($_REQUEST['kid']) and in_array('6',$_REQUEST['kid'])) print 'checked'; ?>/>システムキッチン<input type="checkbox" name="kid[]" value="7" <?php if (isset($_REQUEST['kid']) and in_array('7',$_REQUEST['kid'])) print 'checked'; ?>/>ペット可</td></tr></table>$sql = 'SELECT DISTINCT * FROM bukken';//名古屋の地域checkboxif(isset($_POST['chiiki_id'])and is_array($_POST['chiiki_id'])){$ary = array_filter($_POST['chiiki_id'], function($v) {return is_numeric($v);});$sqlA = 'id IN (SELECT chiid FROM chiiki WHERE chiiki_id IN ('.implode(',', $ary).'))';}else{ //print '地域がチェックされてません';$sqlA = ' 1 ';//kid絞り込みif(isset($_POST['kid'])and is_array($_POST['kid'])){$ary = array_filter($_POST['kid'], function($v) {return is_numeric($v);});$sqlK = 'id IN (SELECT fid FROM fudou_kodawari WHERE kid IN ('.implode(',', $ary).'))';}else{ //print '<br />こだわりがチェックされてません';$sqlK = ' 1 ';}$sql.=' WHERE ('.$sqlK.')'; // こだわり条件$sql.=' AND ('.$sqlA.')'; // エリア以下省略テーブルbukken(物件名は適当です)id bukken_name chiiki_id address price_min price_max station1 名駅MID 1 愛知県名古屋市中村区則武本通x丁目xx番 40770000 55100000 名古屋駅2 プレサン浄心 2 愛知県名古屋市西区城西x丁目xxxx番x 30800000 40001000 浄心駅3 アネシア八事 3 愛知県名古屋市昭和区高峯町xxx番 50000000 62510000 八事日赤テーブルchiikichiid chiiki_id1 12 23 34 45 15テーブルfudou_kodawarifid kid1 11 21 32 13 23 33 44 35 46 47 18 18 28 49 510 110 4
この機能は、特定のユーザーとの接触を避け、トラブルを防止するためにご用意しております。ブロックされたユーザーは、今後あなたの質問に回答ができなくなり、またそのユーザーの質問に対して、あなたも回答を投稿できなくなるという、重大な機能です。一度設定すると簡単に解除することができませんので、以下の点にご注意ください。
Sooda! は、ご利用者様同士の助け合いによって成り立つ知識共有サービスです。 多くの方に気持ちよくこのサイトを利用していただくために、事務局からのお願いごとがあります。
この投稿が、「禁止事項」のどの項目に違反しているのかを教えてください。 ご連絡いただいた内容がSooda! 事務局以外の第三者に伝わることはありません。
ご連絡いただきました内容は、当サイトの禁止事項に基づいて、事務局にて確認後、適切な対応をとらせていただきます。場合によっては、検討・対応に多少お時間を頂戴する場合もございます。
なお、誠に恐れ入りますが、今回のご連絡に関する対応のご報告は、結果をもって代えさせていただきます。対応の有無や判断基準に関しましては悪用を避けるため、事務局宛にお問合せいただきましても、ご回答およびメールのご返信はいたしかねますので、予めご了承くださいませ。
この質問を終了しますか?
質問をカテゴライズして、Sooda!をより良くしよう!
この質問を削除してもよろしいですか?
この回答を削除してもよろしいですか?
設定中のニックネームで質問したくない場合は、匿名で質問をすることが出来ます。 匿名で投稿する このニックネームを記憶する
一覧を見る