2011-04-07 28 views
0

我有一个为残疾学生建立的网站,用于搜索YouTube,然后以无障碍格式显示结果。显示最受欢迎的表单提交?

我想显示本网站上排名前5的最受欢迎的检索词。

搜索条件是使用文本输入表单提交的 - 有没有办法将searchterms提交给mysql,然后显示最流行的?

还是更好的方法?

形式提交代码:

<fieldset class="search"> 
<form method="get" name="search" action="<?php echo 
htmlentities($_SERVER['PHP_SELF']); ?>"> 
    <input type="text" label="type here" class="box" name="v" placeholder="type here..."/> 
    <input type="submit" name="submit" value="Search"/> 
</form> 
    </fieldset> 

非常感谢,迈克

回答

0

最简单的方法是创建节约searchterms(转换与用strtolower(小写数据库表),并检查是否术语已保存)以及一个简单的INT字段,如果搜索项已经存在于数据库中,则该字段将递增。

SELECT `term` FROM `search_terms` ORDER BY `search_count` DESC LIMIT 5 
0

另外一个可能的想法(这可能是愚蠢的,我不知道):你可以添加两个MySQL

现在你可以像查询从数据库中选择最热门的搜索词表,一个用于SearchTerms(例如列SearchTermID(一个数字)和一个SearchTerm字符串),然后是一个搜索表,它具有SearchID,SearchTermID(使用SearchTermID列附加到SearchTerms表,例如SearchDateTime来记录搜索发生的时间)。然后,每次有人搜索时,请检查SearchTerms表以查看此术语之前是否已搜索过,如果是,则向搜索表中添加一条记录。

然后,你可以有一个查询做“返回我已经在本周使用最多的5 SearchTerms”通过类似 SELECT SearchTerm,Count(SearchID) FROM SearchTerms INNER JOIN Searches ON Searches.SearchTermID=SearchTerms.SearchTermID WHERE SearchDateTime > [today minus a week, or something] LIMIT 5

我不知道这将是很好的指标,但我认为一个在SearchDateTime上对于“前5名”查询会很有用。还有一个关于SearchTerms中的字符串,因为您在录制搜索时将检查该列。

(也许这也将是件好事,在SearchTerms表NumberOfTimesSearched列,但你可以随时加入了时代的相关SearchTermID出现在搜索表中的数字计算的话)