首页 文章

使用PHP显示今天月份和年份的网页视图,而无需添加到数据库

提问于
浏览
0

我有一个MySQL表 views 用于跟踪网页上的视图 . 该表的结构如下:

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

每次访问页面时我都会 not 添加行,但只需 UPDATE 记录:我更新 pglast 列并增加 pgviews 列 .

我想要的是:
显示今天,本月和整年的观看量 .

是否有可能做我想要的,或者我是否必须为访问添加行,访问日期?在页面访问时添加行的缺点当然是,如果有大量访问,它可以变得非常完整,而简单地更新记录更具可扩展性......

1 回答

  • 0

    要在不为每次访问添加行的情况下完成所需内容,您可以执行以下操作:

    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 .

相关问题