2009-08-12 61 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”分隔为单个关键字。

+0

小问题:你应该引用数组键索引:'$ fetch_content ['article_name']'。不这样做会使它认为它是一个常数。 – nickf 2009-08-12 12:11:47

回答

2

可以使用split函数在PHP中打破冠军成每个单词:

$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 2009-08-12 12:39:40

0

应当指出的是..

like '%$title' 

...只会匹配的项目,如在结束在 '标题',所以你可能想要做...

LIKE '%$title%' 

。 ..如果你只是想要包含'标题'的项目。我也假定$ title变量已经被转义了。如果没有,...

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