私は、MySQLデータベースを検索して結果を表示するPHPキーワード検索スクリプトを用意しています。現在、このスクリプトは、MySQLデータベースのフィールドに添付された単一のキーワードに基づいて結果を検索します。複数のキーワードをPHP/MySQLキーワードベースの検索に割り当てる
私の質問は、 1つのフィールドに複数のキーワードを付けて、それらのキーワードの1つ以上がユーザーのクエリで一致する場合、結果を返すにはどうすればよいですか?
データベースでキーワードを定義し、カンマで区切ることはできますか?例えばこれは、fulltext indexを使用し、フィールド
<?php
mysql_connect("localhost","username","password");
mysql_select_db("database");
if(!empty($_GET['q'])){
$query=mysql_real_escape_string(trim($_GET['q']));
$searchSQL="SELECT * FROM questions WHERE `keywords` LIKE '%{$query}%' LIMIT 1";
$searchResult=mysql_query($searchSQL);
while($row=mysql_fetch_assoc($searchResult)){
$results[]="{$row['result']}";
}
echo implode($results);
}
?>
@Callum Whyte、これは完全なコード例です。 '%%'は索引付けされていないので、可能ならばフルテキスト検索を実際に使用するべきです。 –