SELECT sum(hitnum) hitnum, `vid` FROM `ranking` WHERE DATE_FORMAT(addtime,'%X%V')=
DATE_FORMAT(now(),'%X%V') GROUP BY vid ORDER BY hitnum
一句话搞定
预备知识: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程序会进行一次数据库查询,判断是否存在该条记录,如果不存在,说明是当
天第一次浏览该文章,需要插入一