- 締切済み
phpでキーワード検索
お世話になっております。 前回より少し変化があったので改めて質問させて頂きます。 前回のhttp://oshiete1.goo.ne.jp/qa3220932.htmlより <table border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="middle"> </td> <td>キーワード</td> <td> </td> </tr> <tr> <td valign="middle"> </td> <!-- フリーワード検索ここから --> <td> <input name="key" type="text" size="20" maxlength="30"> </td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <!-- 送信ボタンここから --> <td><form name="form1" method="get" action="list.php"> <input type="image" src="image/serch_but.gif" alt="検索" value="検索" width="65" height="20" border="0"> </form></td> <?php $sql = "select Ui_id,Ui_name from Upindustry_table order by Ui_order"; $rs = mysql_query($sql); while($row=mysql_fetch_array($rs)) ?> <!-- 送信ボタンここまで --> </tr> </table></td> </tr> <!-- フリーワード検索ここまで --> </table> <input name="fn" type="hidden" id="fn" value="sr"></td> </tr> </table> このようにしました所、エラーは出なくなりましたが検索結果が0になります。 これは元々エリア検索と一緒についていたもので、キーワードのみ、もしくはエリアのみ、または両方で検索出来るというもので下。 これをキーワードのみにしたいのですが、エリア検索の記述を消すとうまく動いてくれません。 どうやらキーワードがうまく送信されていないようで検索結果が「list.php?x=20&y=7」のように座標で出て来てしまいます。 エリア検索が一緒についている状態で、検索をすると「list.php?munic=9999&area=0&key=%83z%83e%83%8B&upcat=9999&lowcat=0&x=38&y=10&fn=sr」 と出ます。 どのようにしたら良いか教えて下さい。 もしこの他に必要なソース等あれば提示致します。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6290)
> $sql = "select Ui_id,Ui_name from Upindustry_table order by Ui_order"; このSQL文を、PHPと関係なく手で発行したとき、結果はどうなりますか? > $rs = mysql_query($sql); > while($row=mysql_fetch_array($rs)) 結果セットからフェッチしてきた$rowに対して何もしていないように見えますが、 それでよろしいのでしょうか?
お礼
検索結果を表示するphpには if($fn == "sr"){ $mainimage="navisearch.jpg"; $table_tmp = ""; $query_tmp = ""; if($munic != 9999){ if($munic == 1){ if($area != 9999){ $table_tmp = ",Town_table"; $query_tmp ="and To_id = St_town and To_area = ".$area; }else{ $query_tmp ="and St_munic = ".$munic; } }else{ $query_tmp ="and St_munic = ".$munic; } } if($lowcat > 0){ $query_tmp .= " and Li_id = ".$lowcat; } if(strlen($key) > 0){ $query_tmp .= " and (St_mainname like ?"%".addslashes($key)."%?" or St_subname like ?"%".addslashes($key)."%?" or St_freeheadtxt like ?"%".addslashes($key)."%?" or St_freetxt like ?"%".addslashes($key)."%?" or St_movietxt like ?"%".addslashes($key)."%?")"; } $sql ="select distinct Li_name,St_update,St_subname,St_mainname,St_tel,St_hp,St_freeheadtxt,St_freetxt,St_moviesize,St_movietime,St_id,Ui_name,Li_upindustry from Industry_store_table,Lowindustry_table,Upindustry_table,Store_table".$table_tmp." where Li_upindustry = Ui_id and In_store = St_id and In_lowindustry = Li_id and St_show = 1 ".$query_tmp ." group by St_id order by St_update desc"; $sql_id=mysql_query($sql); $count_list=mysql_num_rows($sql_id); … という記述があります。 ※コメントアウトは消しています これがエリア検索の部分で、検索ページの方でエリア検索の部分を消すとうまく動作しない原因なのだと思いますが、どうすればエリア検索だけを消してキーワード検索だけにする事が出来ますでしょうか?
補足
早速のご回答ありがとうございます。 当方phpの知識が乏しいためasuncionさんのアドバイスを理解出来なくて申し訳ないです… 手で発行とはどうやればよいのでしょうか? このプログラムを別の方が作ったものなのですが、 >>結果セットからフェッチしてきた$rowに対して何もしていないように見えますが これが原因になっているという可能性はあるのでしょうか?