[PHP-users 19134]Re: PHP+MySQLでの検索システムについて

Seto seto @ cii.gr.jp
2003年 11月 26日 (水) 17:58:45 JST


 Setoです。
Resがついてないようなので、、、


>$sql = 'select * from テーブル名 where name like "'.$_POST['space'].'%"'; 
>//検索フォーム用
>
>$yomi = $_GET['yomi']; //50音順索引検索用
>if($yomi=="あ"){
>$sql = 'select * from DB名.テーブル名 where yomi between "あ" and "お" 
>order by yomi';

中略

>$res = mysql_query($sql);
>
>mysql_close($con); //MySQLへの切断

どんな場合でも$sqlってのが最終的に50音の処理でセットされてるからって事?
そんなことではない?

どちらを優先させるかってことになりますが
  ●ブラウザから送信されてきたsubmitボタンをチェックするとか
  ●$_POST['space']ってのがセットされてたらとか
何かしらの条件判断をして
  ●50音の検索処理をするのか
  ●フォーム入力のLIKE検索をするのか
制御しなければいけないでしょう。


>index.htmlのフォームでテキストボックスの右となりあたりにリストメニューでAND
>とORを選択させた方が良いということなのでしょうか?

これはフォームに複数のキーワードを入力させて
AND もしくは OR で検索できるようにしたいということですね?
だとすれば 
  複数キーワードを入力されたときに 全てのAND/ORでいいのか
  それとも A and B or C and D などもできるようにしたいのか
前者なら メニューでAND/ORを選ばせてもいいでしょうし
ディフォルトANDで OR検索したいなら|でキーワードを区切るとか
もしくはNamazuのようにでも 利用される人 作成される人の好みでしょう。
ちなみにNamazu http://search.namazu.org/cgi-bin/namazu.cgi?lang=ja 


上手くいかないという表現では この程度しか返事もできませんが
参考になれば。



PHP-users メーリングリストの案内