给一个页面里的新闻做点击量统计,根据结果返回的标题和链接做成一个排行榜.请高手指点下!谢谢!

解决方案 »

  1.   

    给新闻表加个字段,比如counts,每次浏览新闻时候counts=counts+1然后根据根据字段counts排序!
      

  2.   

    1楼的做法我支持..不过还要用cookie和IP..加上一些限制就完美了..(PS:因为你不可能让用户每点一次都增加阅读数啊.那样的话阅读数就是虚的..没什么实际意义了).
      

  3.   

    数据库支持
     必面有个字段来保存点击量 比如说 clicked int 
    数据采集
     简单来说,就是用户点击一下页面就调用数据库 update table set clicked = clicked + 1 where id = '$id';
     复杂点,比如同一用户点击同一页面,只有两次点击相隔多长时间才增长一次.
      

  4.   

    认同1楼做法,3楼中,根据ip来计数,不好,如果在网吧、学校,100台电脑就一个ip,那怎么办了。。
      

  5.   

    认同1楼做法,3楼中,根据ip来计数,不好,如果在网吧、学校,100台电脑就一个ip,那怎么办了。。
      

  6.   

    两个方法:下面的方法效率比较低,不推荐。建立一个统计表countid 序列id
    articleid 新闻id
    hitcount 点击次数
    lastupdate 最后更新时间新闻页面都应该是由CMS后台根据模板页面生成的静态html页面,想在这里计数的话:
    在新闻模板页面头部加入一个<script src="http://www.xxx.com/count.php?articleid=xx"></script>而这个count.php通过http://www.xxx.com/count.php?articleid=xx
    传递进来的参数,将新闻id(articleid)存入count表里面。并且每次将点击次数自增。当你想做统计的时候,根据这个count表内的articleid去联接查询新闻表,查出新闻的链接和title,再按count表的count字段排序就行了。==============================================================================================
    还有一种方法就是分析apache的访问日志,默认情况下是access_log。首先你要去手动改一下apache日志的记录rule,将你想要记录的东西都记录日志,比如页面url,http访问状态码,时间等等,看看你想要哪些东西了,还有就是劝你将apache日志按日分页记录,且只把涉及新闻系统这个子域名下的访问日志单独记录,不要与其他的什么BBS,BLOG的访问日志记录到一起,不要所有日志都记录到一个日志里面,这样会大大增加效率。1 写一个php或shell脚本:
    用crontab每天一个固定时间用mysql的load data infile语句将apache当日的日志load进你的mysql的一个原始数据表source_data。这个表对应的就是apache日志里面的全部内容。2 根据原始表数据统计出结果:
    将source_data里面的数据有重复的url字段的数量统计出来,这就是用户点击量。将统计出的数据重新插入一个新的表,这个表就是你最后的统计表。包含内容应该有:新闻url,新闻title,点击次数。今后你要统计数据的时候,只需要单表就可以很轻松的把结果查出来了。这种方法效率很高,处理看起来难,其实很简单。但数据有一天的延迟,我相信一般做数据统计的,都有时间延迟的,没有实时数据的。
      

  7.   

    还有一点需要注意,新闻页面有的是有分页的,一般分页的url表现形式为http://www.xxx.com/arcticle/20080808/12345_2.html或12345_3.html如果你希望每个分页的访问量都应该算整个新闻的访问量,你需要处理下这里,在记录到原始表后,比对相同的url应该截取_以前的字符串来做比对。