※ ChatGPTを利用し、要約された質問です(原文:チェックボックスから検索、PHP コード付き)
チェックボックスから検索、PHP コード付き
このQ&Aのポイント
現在チェックボックスとフリーワード検索をしようしたサイトを作ろうとしているのですが、どうしても仕様通りにいきませんでしたのでここで質問をさせて頂きました。
検索画面ですが、簡単な2ページ構成になっております。
どなたかお分かりになる方がいましたらお伺い出来ませんでしょうか。
現在チェックボックスとフリーワード検索をしようしたサイトを作ろうとしているのですが、どうしても仕様通りにいきませんでしたのでここで
質問をさせて頂きました。
検索画面ですが、簡単な2ページ構成になっております。(kensaku.phpとresult.php)
コードのどこが間違っているのかが分かりません。
どなたかお分かりになる方がいましたらお伺い出来ませんでしょうか。
宜しくお願い致します。
1,kensaku.php
<form action="result.php" method="POST" >
<table class="font12" cellpadding="5" cellspacing="10" width="430" align="center">
<tr>
<td>
<span class="checkbox"><input type="checkbox" name="sejyutu[]" value="1" />aaa</span>
<span class="checkbox"><input type="checkbox" name="sejyutu[]" value="2" />bbb</span>
<span class="checkbox"><input type="checkbox" name="sejyutu[]" value="3" />ccc</span><br />
</td>
</tr>
<tr>
<td><input type="text" name="sejyutu_else" value="フリーワード検索" size="30" /></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="検索する" /></td>
<?php
//DB接続・選択
if (!$int_connect = @mysql_connect('localhost','bbb','aaa')) {
die("can't connect mysql server.");
}
//データベースに接続
if (!@mysql_select_db("database", $int_connect)) {
die("can't use selected database.");
}
// SQLクエリ
$sql = "select * from table";
$where = array();
// sejyutuカラムの条件を調べる
if (isset($_POST['sejyutu']) && is_array($_POST['sejyutu'])) {
foreach ($_POST['sejyutu'] as $sejyutu) {
$where[] = "sejyutu like '%" . mysql_real_escape_string($sejyutu) . "%'";
}
}
// sejyutu_elseカラムの条件を調べる
if (isset($_POST['sejyutu_else']) && strlen($_POST['sejyutu_else'])) {
$where[] = "sejyutu_else like '%" . mysql_real_escape_string($_POST['sejyutu_else']) . "%'";
}
// 検索キーワードの有無により処理分岐
if (!$where) {
echo "検索キーワードを入力して下さい";
} else {
// SQL文を生成する
$sql .= " where " . implode(' OR ', $where);
$res = mysql_query($sql,$int_connect);
if (!mysql_num_rows($res)) {
echo "<p>該当データがありません</p>";
} else {
// TABLEタグを書く
while ($row = mysql_fetch_array($res)) {
// 各結果をTR,TDタグで整形して表示する
?>
<table width="430" cellpadding="5" cellspacing="0" class="font12">
<tr>
<td colspan="2"><p class="salon_name"><?php echo mb_convert_encoding(trim($row["salon_name"]),"sjis","euc-jp") ?></p></td>
<td><a href="salon_page.php?code=<?php echo $row['id'];?>">詳しくはこちら</a></td>
</tr>
<tr>
<td valign="top"><p class="salon_item">最寄り駅:</p></td>
<td class="salon_detail"><?php echo mb_convert_encoding(trim($row["station"]),"sjis","euc-jp") ?></td>
</tr>
<tr>
<td valign="top"><p class="salon_item">住所:</p></td>
<td class="salon_detail"><?php echo mb_convert_encoding(trim($row["address"]),"sjis","euc-jp") ?></td>
</tr>
<tr>
<td valign="top"><p class="salon_item">施術名</p></td>
<td class="salon_detail"><?php echo mb_convert_encoding(trim($row["sejyutu"]),"sjis","euc-jp") ?></td>
</tr>
<?php
}
}
}
?>
お礼
さっそくのご返答ありがとうございます hrm_mmm様が申しておりました通り変更してみましたら 無事にうまくいきました。 プログラムの方ばかりに目がいっており、肝心な所がおろそかになっておりました。 ご指摘どうもありがとうございました。