• 締切済み

データベースからのキーワード検索

いつもお世話になっております。 PHP初心者です。 あるデータベースから条件を指定して検索するPHPがあります。 セレクトボックスの選択項目とキーワード検索があったものを、キーワード検索だけ使いたくてセレクトボックスを削除するとキーワード検索が動かなくなりました。 元はこういうものです <table border="0" cellpadding="0" cellspacing="0" class="seachbox"> <tr> <form name="form1" method="get" action="list.php"> <td align="right"><table border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="middle">&nbsp;</td> <td>キーワード</td> <td>&nbsp;</td> </tr> <tr> <td valign="middle"><select name="munic" class="style_12px_BL" id="serch01" onChange="AreaList(this.options[selectedIndex].value)"> <option value ="9999" selected>指定しない</option> <?php $sql = "select Mu_id,Mu_name from Munic_table order by Mu_order"; $rs = mysql_query($sql); while($row=mysql_fetch_array($rs)){ print("<OPTION value=". $row["Mu_id"] . ">". $row["Mu_name"] . "</OPTION>?n"); } ?> </select></td> <td><input name="key" type="text" value="" size="20" maxlength="30"> </td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><input type="image" src="image/serch_but.gif" alt="検索" id="serch01" width="65" height="20" border="0"></td> </tr> </table></td> </tr> </table> <input name="fn" type="hidden" id="fn" value="sr"></td> </form> </tr> </table> この状態だとキーワード検索が動くのですが、select部分を削除すると検索結果のページにエラーが出てキーワードが反映されません。 中程にあるPHPに何らかの指定が必要なのだと思うのですが、どう書けばよいかわからない状態です。 宜しくお願い致します。

みんなの回答

  • unlax
  • ベストアンサー率100% (2/2)
回答No.2

中段あたりの<?php $sql = "~?>のところは別に中身をDBから抽出してるだけなので問題は飛び先のlist.phpで$_GET['munic']の入力チェックを行っていてそれが未入力なのでエラーが出る?もしくはonChange="AreaList(this.options[selectedIndex].value)"の部分でJSが何かHIDDENにセットするようになっていたりしてその値のチェックをしているなどでは無いでしょうか? list.phpを見てみないと解らないかも。 どういったエラーが出力されるのでしょうか?

tse-sie
質問者

補足

すみません、きっと凄く需要な事を指摘されていると思うのですが私には難しくてわからないです… 出力されるエラーは キーワードを入れても0件と出る ページの上に3行ほどlist.phpにエラーがあると表示される というものです。 上記のままだとエラーは出ません。 これを削除してキーワード検索のみにしようとするとエラーが出ます。 原因と対処法はありますでしょうか…?

すると、全ての回答が全文表示されます。
  • nyalio
  • ベストアンサー率58% (20/34)
回答No.1

お疲れ様です。 特にこのソースじゃなければならない!という理由がないのであれば、 <form action="検索結果表示のphp" action="POST"> キーワード:<input type="text" name="keyword"> <input type="submit" value="検索"> </form> として、表示のphpのほうに mysql_query("SELECT * from TABLE WHERE 検索フィールド='".$_POST['keyword']."'"); でsqlを書いておけば検索できるのですがどうでしょうか。

tse-sie
質問者

補足

早速のご回答ありがとうございます。 やってみましたが私のやり方が悪いようで動作しませんでした。 他のページにも影響しているのかもしれないので、出来れば上記のものを利用したプログラムにしたいのですが、不可能でしょうか? 上記のものをキーワードのみにする…というのをやりたいのですが…プログラムから書き直さなければいけないのでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A