仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1105|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之周排行、月排行榜开辟总结(原创)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:40:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。    准备常识: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 1、统计 第一步就是要纪录文章天天的点击率,这步十分复杂,当用户检查某篇文章时,PHP法式会停止一次数据库查询,判别是不是存在该笔记录,假如不存在,申明是当天第一次阅读该文章,需求拔出一笔记录,前面的访客再看这篇文章时,只需更新点击率就行。这就是纪录某篇文章一天的点击率。 PHP: $date = date("Y-m-d",time()); $contentid = $_GET[id];//以后文章ID $query = mysql_query("select * from ranking where contentid='$contentid' and date='$date'); //查询数据库 if($value = mysql_fetch_array($query)){     mysql_query("update ranking set hits = hits+1 where id='$value[id]' ");//假如有纪录,只需点击率+1 }else{     mysql_query("insert into ranking (`contentid`,`hits`,`date`) values('$contentid','1','$date')");//假如是第一次阅读,拔出一条数据,点击率为1 } 2、查询 此时统计任务已完成,接上去要把这些文章按一周或一个月点击率总和的按次查询出来,这是个难点。 1.先要给文章分组并盘算总点击率:select *,sum(hits) from ranking group by contentid order by sum(hits) desc 2.取本周数据挑选出来:select *,sum(hits) from ranking where week(date)=week(now()) group by contentid order by sum(hits) desc 这是周排行的查询语句,绝对对照庞杂,查询出来后再放到数组中顺次显示出来,月排行也是如许,换一下函数就行,完全的PHP代码我就不写出来了。   http://bbs.php100.com/mode.php?m=o&q=user&u=53700 <P style="TEXT-INDENT: 2em">
怎么培养啊 别光说不练啊,好 ,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 18:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表