例如我的網站希望統計出最近7天熱門的帖子,就是最近7天訪問量增加最多的帖子,該如何用php設計,一直想不出好的辦法,希望大家指點下。其實也就是類似discuz那種熱帖的功能
例如我的網站希望統計出最近7天熱門的帖子,就是最近7天訪問量增加最多的帖子,該如何用php設計,一直想不出好的辦法,希望大家指點下。其實也就是類似discuz那種熱帖的功能
可以使用定時功能,每X小時執行一次統計,對最近七天的帖子的訪問次數、收藏、點讚、評論等進行係數計算
<code>例如: 帖子热度=访问次数*1+收藏*10+点赞*3+评论*5 </code>
然後結果排序將其排序儲存到資料表或則快取中。
資料庫設計的時候要體現出增量, 以前都是在文章表直接加個字段表示訪問次數. 遇到這種情況要把訪問情況單獨放在一個表存放, 每次訪問都作為一條記錄
根據文章ID redis 做自增操作。頁面展示倒序排序
資料表中記錄發文時間 :time,和瀏覽次數:views。 views隨瀏覽量自增。
取得昨天,以前前七天的時間戳範圍。
<code class="php">public function last_unix($a) { $y = date("Y"); $m = date("m"); $d = date("d")-$a; $start= mktime(0,0,0,$m,$d,$y); $end= mktime(23,59,59,$m,$d,$y); return array('start' =>$start ,'end'=>$end ); } $yesterday = $this->last_unix(1); $lastsevernday = $this->last_unix(7); $hotest=$a->where("time>'$lastsevernday' AND time<'$yesterday'")->max('views');</code>