0

我有一个示例表来存储类似的帖子

id|title|content|

现在我想数view post

在此处输入图像描述

有什么办法吗 谢谢

4

5 回答 5

1

您的表中应该有一个字段来存储观看次数,因此您可以使用类似于以下内容的内容更新观看次数:

UPDATE `table` SET `views` = `views` + 1 WHERE `id`= $post_id

您可能希望通过刷新页面来避免垃圾邮件或确保它是唯一的查看器。有几种方法可以做到这一点。

如果你想认真对待它,你将不得不使用一个表来存储 IP 地址并将它们与查看的帖子相关联,以免再次计数,就像 Gautam3164 建议的那样。

但是,每次客户查看帖子时创建新记录的计算成本太高,除非它对案例非常必要,否则应该避免。

相反,您可以滥用$_SESSION来存储最近查看的帖子的 ID,以便在同一客户再次查看它们时不增加计数器。

例如:

if (!isset($_SESSION['recent_posts'][$post_id])) {
    mysql_query("UPDATE `table` SET `views` = `views` + 1 WHERE `id`= $post_id");
    $_SESSION['recent_posts'][$post_id] = 1;
}

它应该以一种非常简单和廉价的方式解决垃圾邮件问题。

于 2013-09-02T06:31:09.773 回答
0

为此,您必须在表中添加一列。

例如,让我们说,

你有列名Views

您必须update像这样将查询放在页面顶部

 UPDATE table SET Views= Views+1 WHERE ID= 'current page id'
于 2013-09-02T06:14:54.063 回答
0

您可以创建一个名为 Counter 的新表,例如该表包含:

 post_id|views

每当用户访问该页面时,您都会增加此计数器

或者您可以在同一个帖子表中添加一个名为视图的字段

如果您想计算唯一视图,您可以按原样存储 IP ADDRESS 并检查 ip 是否存在,您不会增加该视图。

您可以像这样在php中获取IP地址:

 $_SERVER['REMOTE_ADDR'];
于 2013-09-02T06:15:07.963 回答
0

最好的方法是使用 cookie,您可以参考

于 2013-09-02T06:15:13.550 回答
0

您可能需要存储使用打开页面IP的查看器的地址并将其存储在其中,并且每次您需要检查维护的唯一地址。$_SERVER['REMOTE_ADDR']DBpage idIP

意味着您需要page view count单个IP 地址启用增量。

1)首先检查数据库是否具有当前IP地址的页面视图($_SERVER['REMOTE_ADDR'])。

2)如果 is 已经存在,那么什么也不做。

3)如果没有,则使用当前页面ID和IP地址在DB中添加一行。

4)然后提取/计算视图数,以计算具有该页面ID的数据库中的行数。

每次你需要重复这些事情。你也可以使用LOGIN系统来维护页数。

于 2013-09-02T06:12:38.397 回答