我有一个专为残障学生设计的网站,可以搜索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 :(得分: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表中的次数加起来来计算它)