周排行、月排行榜開發總結
預備知識:group by,MYSQL函式week()、month()
在設計資料庫時一般都有一個欄位來記錄文章的點選率,如果我們要統計一週或一個月點選率排行光靠這一個欄位是肯定是無法實現的。這時就要新建一個表,用來記錄每篇文章每天的點選率。
假設這個表名為ranking,定義四個欄位:rid(表ID),contentid(與文章ID關聯),hits(記錄每天點選率),date(時間,重要,查詢時作比較)
ranking大致結構
id contentid hits date
1 2 12 2010-12-18
2 2 23 2010-12-19
3 1 15 2010-12-19
4 2 21 2010-12-20
一、統計
第一步就是要記錄文章每天的點選率,這步非常簡單,當使用者檢視某篇文章時,PHP程式會進行一次資料庫查詢,判斷是否存在該條記錄,如果不存在,說明是當天第一次瀏覽該文章,需要插入一條記錄,後面的訪客再看這篇文章時,只要更新點選率就行。這就是記錄某篇文章一天的點選率。
PHP:
$date = date(“Y-m-d”,time());
$contentid = $_GET[id];//當前文章ID
$query = mysql_query(“select * from ranking where contentid=`$contentid`
and date=`$date`); //查詢資料庫
and date=`$date`); //查詢資料庫
if($value = mysql_fetch_array($query)){
mysql_query(“update ranking set hits = hits+1 where id=`$value[id]`
“);//如果有記錄,只需點選率+1
“);//如果有記錄,只需點選率+1
}else{
mysql_query(“insert into ranking (`contentid`,`hits`,`date`)
values(`$contentid`,`1`,`$date`)”);//如果是第一次瀏覽,插入一條資料,點選率為1
values(`$contentid`,`1`,`$date`)”);//如果是第一次瀏覽,插入一條資料,點選率為1
}
二、查詢
此時統計工作已經完成,接下來要把這些文章按一週或一個月點選率總和的順序查詢出來,這是個難點。
1.先要給文章分組並計算總點選率:select *,sum(hits) from ranking group by contentid order
by sum(hits) desc
by sum(hits) desc
2.取本週資料篩選出來:select *,sum(hits) from ranking where week(date)=week(now())
group by contentid order by sum(hits) desc
group by contentid order by sum(hits) desc
這是周排行的查詢語句,相對比較複雜,查詢出來後再放到陣列中依次顯示出來,月排行也是這樣,換一下函式就行,完整的PHP程式碼我就不寫出來了。
相關文章
- 11月 第4周 GitChat 話題排行榜Git
- redis在排行榜中的使用總結Redis
- GfK:2020年2月第四周英國遊戲排行榜遊戲
- 微信小遊戲好友排行榜快速開發教程遊戲
- ZT TIOBE六月程式語言排行榜
- App Annie:2018年12月發行商出海收入排行榜APP
- App Annie:2018年11月發行商出海收入排行榜APP
- Unity結合Flask實現排行榜功能UnityFlask
- 開發總結
- 2周的面試總結面試
- 第九周總結
- 2013年6月程式語言排行榜
- TIOBE 10月程式語言排行榜:Dart起死回生Dart
- TIOBE 2016年2月程式語言排行榜 Java發展受阻Java
- GitHub 中文排行榜Github
- 蟬大師:2021年4月遊戲排行榜遊戲
- 蟬大師:2021年5月遊戲排行榜遊戲
- 2018年11月程式語言排行榜
- 2023年8月IPTV資料排行榜
- Tiobe:2013年7月程式語言排行榜
- TIOBE 2013年9月程式語言排行榜
- TIOBE 2013年11月程式語言排行榜
- 2012年7月程式語言排行榜
- 2012年6月程式語言排行榜
- 2012年9月程式語言排行榜
- 2012年8月程式語言排行榜
- 《大前端開發》培訓2周小結前端
- 第0周學習總結
- 第九周學習總結
- 第四周總結
- 開發中總結
- 微信開發總結
- 十大系統軟體開發公司排行榜名單
- App Annie:2012年最賺錢開發商排行榜APP
- 2020 年 3 月 App Annie 月度指數排行榜APP
- 2019 年 11 月 App Annie 月度指數排行榜APP
- TIOBE 程式語言 7 月排行榜:Go 進入 Top 10Go
- 也說一說TIOBE11月程式語言排行榜