2011-04-07 66 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出現在搜索表中的數字計算的話)