[PHP-users 19045]Re: PHP+MySQLでの検索システム

Tadayuki Motoyama motoyama @ clinks.jp
2003年 11月 21日 (金) 13:34:28 JST


本山です。こんにちは。

andor 検索の意味が分からないのですが、

例えば、検索フィールドに [ 山田 太郎 ] 
などと2つ以上の単語を入力し検索すると、
その全てに当てはまる名前(and検索)
そのいずれかに当てはまる名前( or 検索)
を表示する。
ということであれば、
こんな感じで出来ると思います。

 --- SAMPLE ---

$search_text = $_POST['space'];

// 検索条件をスペースで分割
$search_text = trim($search_text);
if ( $search_text != NULL ) {
	$words = explode(" ", $search_text);
	$count = count($words);
}
else {
	$count = 0;
}

//SQL 作成
$sql = "select * from DB名";
if ( $count > 0 ) {
	$sql .= " where (";
	for ( $i = 0; $i < $count; $i++ ) {
		if ($i > 0 ) {
			$sql .= " ) and (";  // OR 検索の時は ORに変える
		}
		$sql .= " name like '" . $words[$i] . "%'";
	}
	$sql .= " ) ";
}


# ちなみに、SQLとしては合ってますが、
# 前方一致で and 検索すると、データが検索されないと思います。


- 以上 -


------------------------
[PHP-users 19040]PHP+MySQLでの検索システム from 聖 悠香 <youka_hijiri @ hotmail.com>
Fri, 21 Nov 2003 12:24:40 +0900


> はじめまして、PHPもMySQLもほとんど携わったことのない者です。
> 今回仕事で携わることになり参加させていただきました。
> 本来なら基礎からやっていくべきなのでしょうが時間がなく行いたい動作から入って
> ます。
> 
> 今現在作ってるものはMySQLデータをPHPで呼び出す検索システムなのですが、データ
> ベースにアクセスをし検索文字を表示させることはできています。
> そこに「andor」検索を入れたいのですがどこを見てどういじって良いのかが分かり
> ません。
> どなたかにアドバイスをいただけたらと思っています。
> 
> 検索フォームはhtmlファイルで検索用語を入力するとPHPファイルにてデータの結果
> を表示させます。
> PHPファイルにはMySQLへの接続をし検索文字を表示させるプログラムを書いていま
> す。
> 
> <?php
> function secho ($str) {
> 	echo htmlspecialchars($str);
> }
> 
> $con = mysql_connect("データベースサーバー", "アカウント", "パスワード");
> mysql_select_db("DB名");
> 
> $sql = 'select * from DBテーブル名 where name like "'.$_POST['space'].'%"'; 
> 
> $res = mysql_query($sql);
> 
> mysql_close($con);
> ?>
> 
> こんな感じです。
> これだけの情報では説明不足なのかもしれませんがうまく伝えられず、申し訳ありま
> せん^^;
> 
> どうぞよろしくお願いします。
> 
> _________________________________________________________________
> あなたの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 メーリングリストの案内