显示最流行的表单提交?

时间:2011-04-07 13:01:42

标签: php mysql html forms search

我有一个专为残障学生设计的网站,可以搜索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>

非常感谢,迈克

2 个答案:

答案 0 :(得分:0)

最简单的方法是创建一个保存searchterms的数据库表(使用strtolower(转换为小写)并检查该术语是否已保存)以及如果搜索项已存在则增加的简单INT字段你的数据库。

现在,您可以使用以下查询从数据库中选择最受欢迎的搜索字词:

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

答案 1 :(得分:0)

另一个可能的想法(可能很愚蠢,我不确定):你可以添加两个MySQL表,一个用于SearchTerms(例如列SearchTermID(一个数字),一个用于SearchTerm的字符串),然后一个Searches表,它有一个SearchID,一个SearchTermID(使用SearchTermID列附加到SearchTerms表,例如SearchDateTime记录搜索发生的时间)。然后每次有人搜索时,检查SearchTerms表以查看之前是否已搜索过该术语,如果是,则将记录添加到Searches表中。

那么你可以通过以下方式查询“将本周使用的前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出现在Searches表中的次数加起来来计算它)