2009-08-12 13 views
1

関連記事のリストを取得しようとしています。例関連記事をMySQL LIKEステートメントで見つける

$title = $fetch_content[article_name]; // example out put "Hello World, Ask A Question" 
$rel_title = "Select * from tbl_content WHERE status='t' and article_name like '%$title' order by id desc limit 5"; 

「Hello World、Ask A Question」を1つのキーワードに分割する方法。

+0

小さい点:配列キーインデックスを引用する必要があります: '$ fetch_content ['article_name']'。そうしないと、それはその定数を考えるようになります。 – nickf

答えて

2

あなたは、各単語にそのタイトルを分割するPHPでsplit機能を使用することができます:

$title_words = split($title); 

$rel_title = 'select * from tbl_content where status = \'t\' and (1=0'; 

foreach($title as $word) 
{ 
    $word = str_replace(',', '', $word); 
    $word = mysql_real_escape_string($word); 
    $rel_title .= ' or article_title like \'%' . $word . '%\''; 
} 

$rel_title .= ')'; 

echo $rel_title; 

また、私は疑問にカンマを削除するためにstr_replaceを使用。明らかに、もしあなたがそれらを持っているなら、これを他のキャラクターに適用することができます。

+0

私に手がかりをくれてありがとう。あなたは揺れる! – wow

0

あなたがしたいかもしれません..だから

like '%$title' 

が...のみ

LIKE '%$title%' 

...、 'タイトル' で終わるどのような項目が一致することに留意すべきです。あなたが単に「タイトル」を含むアイテムを望むならば。私は$ title変数が既にエスケープされていると推測します。ない場合は、...

LIKE '%" . mysql_real_escape_string($title) . "%' 
0

ボブ、あなたの質問は、記事タイトルの個々のキーワードの全文検索を行う方法の行に沿っていますか?テキスト検索をサポートするデータベースもあります。 MySQLは次のように記述されています:http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

関連する問題