- ベストアンサー
チェックボックスを使っての検索でPHP5とMySQL4.0.24を使用する方法
- チェックボックスを使用してOR検索を行いたい場合、検索側のHTMLで選択された値を取得し、PHPで処理する必要があります。
- HTMLのチェックボックスにはname属性とvalue属性を設定し、PHPでは$_POST変数を使用して選択された値を取得します。
- 取得した値をSQLクエリのWHERE句に組み込み、%演算子を使用して部分一致検索を行うことで、チェックボックスでOR検索を実現することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
foreach ($chk as $data) { ここが foreach ($_POST['chk'] as $data) { こうですね。 すいません。
その他の回答 (1)
- moon_night
- ベストアンサー率32% (598/1831)
こんな感じではどうでしょうか? $or = 0; $ken = " ("; foreach ($chk as $data) { if ($or) { $ken .= " or arraival like '%{$data}%'"; } else { $ken .= " arraival like '%{$data}%'"; $or++; } } $ken .= ")"; $sql = "select * from shop_data where $ken";
補足
ありがとうございました。 ですが$kenの中には何も入っていないようです。 処理側のPHPに $or = 0; $ken = " ("; foreach ($chk as $data) { if ($or) { $ken .= " or arraival like '%{$data}%'"; } else { $ken .= " arraival like '%{$data}%'"; $or++; } } $ken .= ")"; print ("$ken"); としてみたのですが ()が出力されるだけでした。 それと $sql = "select * from shop_data where arraival like '%$arraival%'"; は $sql = "select * from shop_data where text like '%$arraival%'"; でした、すみませんです。
お礼
おそくなりましたが、取り出したい結果が得られました ありがとうございました。