我有一个示例表来存储类似的帖子
id|title|content|
现在我想数view post
像
有什么办法吗 谢谢
您的表中应该有一个字段来存储观看次数,因此您可以使用类似于以下内容的内容更新观看次数:
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;
}
它应该以一种非常简单和廉价的方式解决垃圾邮件问题。
为此,您必须在表中添加一列。
例如,让我们说,
你有列名Views
您必须update
像这样将查询放在页面顶部
UPDATE table SET Views= Views+1 WHERE ID= 'current page id'
您可以创建一个名为 Counter 的新表,例如该表包含:
post_id|views
每当用户访问该页面时,您都会增加此计数器
或者您可以在同一个帖子表中添加一个名为视图的字段
如果您想计算唯一视图,您可以按原样存储 IP ADDRESS 并检查 ip 是否存在,您不会增加该视图。
您可以像这样在php中获取IP地址:
$_SERVER['REMOTE_ADDR'];
最好的方法是使用 cookie,您可以参考它。
您可能需要存储使用打开页面IP
的查看器的地址并将其存储在其中,并且每次您需要检查维护的唯一地址。$_SERVER['REMOTE_ADDR']
DB
page id
IP
意味着您需要page view count
为单个IP 地址启用增量。
1)首先检查数据库是否具有当前IP
地址的页面视图($_SERVER['REMOTE_ADDR']
)。
2)如果 is 已经存在,那么什么也不做。
3)如果没有,则使用当前页面ID和IP地址在DB中添加一行。
4)然后提取/计算视图数,以计算具有该页面ID的数据库中的行数。
每次你需要重复这些事情。你也可以使用LOGIN
系统来维护页数。