【URL】http://localhost/◯◯◯/?budget501万円〜1000万円®ion=関東
上記のURLにあるようにbudgetが501万円〜1000万円に該当するレコードを取得するようSELECT文を書いてますが、下のテーブルの3段目のレコード[501万円〜1000万円][関東][埼玉]というレコードしか取得できません。
イメージですと、501万円〜1000万円and関東なら2段目のレコードの[0〜100万円,501万円〜1000万円]というレコードも取得できるのではないかと思ったのですが上手く取得できません。
カラムに検索内容と該当する値と、別の値がセットになってても検索に引っかかるやり方を教えていただけないでしょうか。
何卒、よろしくお願い申しあげます。
<?php $parse = $_SERVER['QUERY_STRING']; // URLパラメータの部分だけを変数に格納 $param = $parse; // parse_strで分解処理し、第二引数で配列の変数名を指定 parse_str($param, $str); // 配列の要素として出力 $db_budget = htmlspecialchars(($str['budget'])); $db_region = htmlspecialchars(($str['region'])); $sql = 'SELECT * FROM list WHERE 1=1'; //budgetの検索条件 if($db_budget) $sql .= ' AND find_in_set(budget=:budget, :budget)'; //if($db_budget) $sql .= ' AND find_in_set("501万円〜1000万円", budget)';だと検索できる //都道府県の検索条件(あいまい検索) if($db_region) $sql .= ' AND region = :region'; //prepareメソッドでSQLをセット $stmt = $pdo -> prepare($sql); if($db_budget) $stmt -> bindParam(':budget', $db_budget, PDO::PARAM_STR); if($db_region) $stmt -> bindParam(':region', $db_region, PDO::PARAM_STR); $stmt -> execute(); var_dump($sql); ?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/13 06:57
退会済みユーザー
2016/11/13 09:40 編集
2016/11/13 10:18
退会済みユーザー
2016/11/14 14:40