PHP& MySQL计算动态页面页面视图的最佳方法

时间:2010-08-30 09:51:33

标签: php mysql

为动态网页计算网页浏览量的最佳方法是什么,例如下面的网址示例?我正在使用PHP和MySQL。简短的解释会有所帮助。谢谢!

http://www.example.com/posts/post.php?id=3

6 个答案:

答案 0 :(得分:10)

通常表结构如下所示:

表格页:

id | name            | ... 
==========================
1    Some Page
2    Some Other Page

table pages_views:

page_id | views
================
1         1234
2         80

其中pages_views在page_id

上有唯一索引

用于递增视图的MySQL语句如下所示:

INSERT INTO `pages_views` SET views=1 WHERE page_id=?
    ON DUPLICATE KEY UPDATE views=views+1 ;

由于pages_views.page_id是唯一的,因此如果页面的行不存在,则会创建该行;如果它存在(这是“重复键”子句),计数器将递增。

我在这里选择了两个单独的表,因为CMS页面通常不会经常更新(因此,它们的负载主要是读取),而页面视图会被读取和更新,以及每个页面视图。

答案 1 :(得分:4)

好吧,您只需在页面表中添加一个字段pageviews,然后对每个页面加载进行UPDATE pageviews = pageviews +1 WHERE id = 1查询

答案 2 :(得分:4)

为了按天/周/月/年查看统计数据,我制作了两张桌子。第一个存档所有访问该网站,我的页面和ID保存在同一行。第二个表记录了统计数据,例如Piskvor描述的。

好处是我可以随时查看我想要的任何页面和ID的统计信息(但随着时间的推移,这将是很多行...)或者我可以简单地查看总浏览量。对于我网站的访问者,我提供了第二个表格中的信息,但我的管理员面板充分利用了第一个表格。

statsEach

 - statID
 - page (example: page 100 is index.php, or 210 is news.php)
 - id (example: 1 is news story 1, 2 is news story 2,...)
 - date
 - time
 - user

statsTotal

 - statTotalID
 - page
 - id
 - total

我不知道你需要/想做什么,或者即使我的桌面结构最好,但这对我有用。

答案 3 :(得分:3)

这是我的代码,当我打开页面时它正常工作或当我刷新页面时,页面视图的增量为1.如果page_id不存在,它将插入一个views = 1的记录,如果page_id存在它会增加视图

`INSERT INTO pages_views ( pages_id, views) VALUES ( $page_id, 1) ON DUPLICATE KEY UPDATE views=views+1`

使用PDO,您将拥有类似的内容

$sql = "INSERT INTO pages_views ( pages_id, views) VALUES ( :pageId, 1) ON DUPLICATE KEY UPDATE views=views+1";

$q = $conn->prepare($sql);
$q->execute(array(':pageId'=>$pageId));

答案 4 :(得分:0)

只需在当前投放的帖子上增加一个整数。

答案 5 :(得分:0)

可以在http://www.configure-all.com/page_view_counter.php

找到一个简单的例子