php - 使用 PHP 显示网页今天、月份和年份的 View ,无需添加到数据库

标签 php mysql

我有一个 MySQL 表views,用于跟踪网页上的 View 。该表的结构如下:

CREATE TABLE views (  
    id int(11) not null auto_increment,
    page int(11) not null,
    pglast DATETIME not null,
    pgviews int(11) default 0,
    primary key(id),
    unique key page (page)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  

page 列是查看的页面的 ID,pglast 列用于保存上次访问页面的时间。 pglast 通常看起来像:
2018-12-03 14:57:57

pgviews 列用于保存访问次数,该列通常如下所示:
7

不会每次访问页面时都添加行,而只是更新记录:我更新pglast列并增加​​pgviews 列。

我想要什么:
显示今天、本月和全年的观看量。

是否可以执行我想要的操作,或者我是否必须添加包含访问日期的访问行?当然,在页面访问时添加行的缺点是,如果访问量很大,它可能会变得很满,而简单地更新记录则更具可扩展性......

最佳答案

要完成您想要的操作而不为每次访问添加行,您可以执行以下操作:

CREATE TABLE views (  
    id int(11) not null auto_increment,
    page int(11) not null,
    pglast DATETIME not null,
    pgviews int(11) default 0,
    pgviews_day int(11) default 0,
    pgviews_month int(11) default 0,
    pgviews_year int(11) default 0,
    primary key(id),
    unique key page (page)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

每次访问都会增加 pgviews_day、pgviews_month 和 pgviews_year。运行一个 cronjob,分别在每天、每月和每年重置 pgviews_day、pgviews_month 和 pgviews_year。

关于php - 使用 PHP 显示网页今天、月份和年份的 View ,无需添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53692778/

相关文章:

php - 使用 PDO 转换我的开发后,代码无法正常工作

php - 2表什么被删除了?

python - 如果我有外键,我该如何在 Django 中执行此 "order by"?

mysql - 在sql中比较同一个表中的两列时如何选择

php - 正则表达式将 <img> 相对 URL 更改为绝对

php - 最有效地在mysql数据库中搜索关键字

php - 即使在 apache2 中使用 Ondrej PPA 存储库,也无法在 Ubuntu 16.04 上安装 PHP 7.4

php - 没有进入父表但 "0"或 "blank"插入子表中的 FK

mysql - 不幸的是删除了 mysql.user 表中的所有用户。我如何创建新用户

java - 数据库中的表不与外键连接