2013-08-24 99 views
2

类似的帖子,我有一个消息剧本,我想从数据库我怎样才能从数据库

任何帮助,得到类似的消息

我有这个

table => news 
fields => id, title, news 

,我用这个代码

$select = $mysqli->query("SELECT * from news WHERE title LIKE '%$title%' LIMIT 4 "); 
$num = $select->num_rows; 
while ($rows = $select->fetch_array(MYSQL_ASSOC)){ 
$id_news  = $rows ['id']; 
$title_news  = $rows ['title']; 
$news_news  = $rows ['news']; 

echo '<a href="'.$id_news.'">'.$title_news.'</a>'; 

} 

但我认为这对于搜索和我没有得到预期的结果

任何其他代码从数据库中获取类似的新闻

感谢

+1

请定义类似的用法。你的意思是相同的话吗?如果是这样,多少?他们是否需要完全相同的单词(例如复数等)?你是否指同一主题?在定义相似的含义时,请尽可能清楚。 – Technoh

+0

@Technoh是的,我的意思是相同的主题 –

回答

1

这是很难回答,因为我们不知道什么是“相似的”对你意味着什么,但你可能想看看MySQL Full-Text Search Functions

+0

我的意思是相同的主题 –

+1

如果你的意思是**相同**,那么你甚至不需要'%',你已经有了正确的查询。如果你实际上不是指**相同**,请详细说明。 – Langdi

0

据我所知,没有快速,明确的方法来做到这一点。您要求提供全文关键字或语义搜索,这是一个非常先进的主题。有完整的搜索服务器完全是为此目的而设计的(Sphinx - http://sphinxsearch.com/ - 是第一个想到的)。

在我看来,你有两个选择:

  1. 切换到搜索服务器,像狮身人面像,并使用该技术。这超出了这个问题的范围。
  2. 转换您的数据库模式,我将在下面解释。

对于选项#2,例如,您可以添加一个keywords表并为每篇文章插入关键字。然后,在搜索时,您可以使用关键字查找任何文章,并查找具有相同关键字的文章。