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

Tadayuki Motoyama motoyama @ clinks.jp
2003年 11月 26日 (水) 23:13:16 JST


本山です。

このメールの内容では、
何をどうしたくてどう動かないのかがわかりませんが、

POSTしたデータはとれていますか?
-> print $_POST['space']
作成したSQLは正しいですか?
-> print  $sql
SQLを実行したときの戻り値は正しいですか?
-> print $res
正しくない場合はエラーコードは?
-> print mysql_errno()

いずれにせよ、
作成したSQLを mysqlコマンドから実行してみるとよく分かると思います。

がんばってください。

- 以上 -

------------------------
[PHP-users 19123] PHP+MySQLでの検索システムについて from 聖 悠香 <youka_hijiri @ hotmail.com>
Wed, 26 Nov 2003 11:52:57 +0900


> お世話になっております。1週間ほど前に検索システムについてのメーリングを投稿
> させていただきました悠香です。
> あれから、みなさんのメールと様々なサイトなどを照らし合わせていろいろやってみ
> ましたがなかなかうまく行きません^^;
> 
> イメージとしてはアスキーデジタル用語辞典(http://yougo.ascii24.com/)と同じ
> ような検索システムで50音順の索引検索と文字入力によるフォームでの検索を考えて
> います。
> 50音順の検索はできたもののフォームを使った検索がうまく動いてくれません。
> 
> 構造的には、index.htmlに検索フォーム用の1行テキストボックスがありメソッドを
> POSTでsearch.phpにデータを受け渡します。
> search.phpでは、MySQL接続を行い受け取ったデータを出力させています。
> search.phpのソースは以下の通りです。
> 
> <?php
> function secho ($str) {
> 	echo htmlspecialchars($str);
> }
> 
> $con = mysql_connect("サーバー名", "アカウント", "パスワード");
> mysql_select_db("DB名"); //MySQLへの接続
> 
> $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';
> }elseif($yomi=="か"){
> $sql = 'select * from DB名.テーブル名 where yomi between "か" and "こ" 
> order by yomi';
> }elseif($yomi=="さ"){
> $sql = 'select * from DB名.テーブル名 where yomi between "さ" and "そ" 
> order by yomi';
> }elseif($yomi=="た"){
> $sql = 'select * from DB名.テーブル名 where yomi between "た" and "と" 
> order by yomi';
> }elseif($yomi=="な"){
> $sql = 'select * from DB名.テーブル名 where yomi between "な" and "の" 
> order by yomi';
> }elseif($yomi=="は"){
> $sql = 'select * from DB名.テーブル名 where yomi between "は" and "ほ" 
> order by yomi';
> }elseif($yomi=="ま"){
> $sql = 'select * from DB名.テーブル名 where yomi between "ま" and "も" 
> order by yomi';
> }elseif($yomi=="や"){
> $sql = 'select * from DB名.テーブル名 where yomi between "や" and "よ" 
> order by yomi';
> }elseif($yomi=="ら"){
> $sql = 'select * from DB名.テーブル名 where yomi between "ら" and "ろ" 
> order by yomi';
> }elseif($yomi=="わ"){
> $sql = 'select * from DB名.テーブル名 where yomi between "わ" and "ん" 
> order by yomi';
> }elseif($yomi=="A"){
> $sql = 'select * from DB名.テーブル名 where yomi between "A" and "Z" order 
> by yomi';
> }elseif($yomi=="num"){
> $sql = 'select * from DB名.テーブル名 where yomi between "0" and "9" order 
> by yomi';
> }
> 
> $res = mysql_query($sql);
> 
> mysql_close($con); //MySQLへの切断
> ?>
> 
> ■search.phpのbody内に
> 
> <table width="100%" border="1" cellpadding="5" cellspacing="0" 
> bordercolor="#339999">
>                         <tr bgcolor="#006666">
>                           <td width="25%"><font color="#FFFFFF" 
> size="2"><strong>検索文字</strong></font></td>
>                           <td width="30%"><font color="#FFFFFF" 
> size="2"><strong>読み方</strong></font></td>
>                           <td width="45%"><font color="#FFFFFF" 
> size="2"><strong>解説</strong></font></td>
>                         </tr><?php while ($row=mysql_fetch_array($res)) { 
> ?>
>                         <tr valign="top">
>                           <td><font size="2">
>                             <?php secho($row['name']); ?>
>                           </font></td>
>                           <td><font size="2">
>                             <?php secho($row['yomi']); ?>
>                           </font></td>
>                           <td><font size="2">
>                             <?php secho($row['imi']); ?>
>                           </font></td>
>                         </tr><?php } ?>
>                       </table>
> 
> 前回申していました「ANDOR検索」なんですが
> AND検索、OR検索のことです。
> index.htmlのフォームでテキストボックスの右となりあたりにリストメニューでAND
> とORを選択させた方が良いということなのでしょうか?
> 
> どこがどうおかしいのかも見当付かず再度送らせていただきました。お気付きの点な
> どご指摘いただければと思っています。
> また、どこかいい参考サイトなどあるようでしたらぜひ教えてください。
> どうぞよろしくお願いします。
> 
> P.S
> このようなMLにまだ慣れておらず返信の仕方が分かってません^^;
> 本来ならRE.で返すべきなのでしょうが・・・申し訳ありません。
> 
>       ○−−−−−−−−−−−−−−−−−−−−−−−−−○
> A___A ♪   youka.hijiri
> o・_・o     
> (v   v)/    hobby:CGサイト「お子さまランチ」
>               http://www.yukiweb.org/~kids-lunch/
>       ○−−−−−−−−−−−−−−−−−−−−−−−−−○
> 
> _________________________________________________________________
> あなたのPCを守るために定期的なセキュリティ対策を。マイクロソフト セキュリ
> ティ情報センター http://www.microsoft.com/japan/protect/hm.asp 
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users


------------------------------------------
 Tadayuki Motoyama : motoyama @ clinks.jp


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