【问题标题】:Display One Record Per Week From Mysql Database每周显示一条来自 Mysql 数据库的记录
【发布时间】:2018-03-18 11:32:05
【问题描述】:

我的mysql表如下:

|id  | subject | link | week_number
------------------------------------
| 1  | ABC     | link1 | week-1
| 2  | DEF     | link2 | week-2
| 3  | GHI     | link3 | week-3
------------------------------------

现在我想在登录后的一周内向用户显示第 1 周的记录,并从他的注册日期开始作为计算周数的初始日期......

那么在下周,第 1 周和第 2 周应该是可见的,

那么在下周,第 1 周、第 2 周和第 3 周的记录应该是可见的。

我完全空白……所以没有尝试任何代码……

感谢您的帮助或指导...

【问题讨论】:

  • 您的表中应该有一个 created_at 列,然后当您运行 cron 作业时,可以返回该日期之后创建的所有行
  • @RïshïKêshKümar 我的上表将一次上传...每个会员的会员注册日期会有所不同...
  • 所以,有一个registration_date字段,。
  • 您要计算注册日期或上次登录日期??

标签: php mysql mysqli


【解决方案1】:

如果您有注册日期,只需将week_number 列更改为days_after_reg - 并将值更改为7,14,21,让您的生活更轻松

那么你只需要将这个数字与当前的偏移量进行比较:

SELECT * from linktable WHERE `days_after_reg` <= datediff(Now(), UserRegistrationDate)

要么使用变量插入用户日期,要么“加入”表格。 请注意,这里的连接没有连接条件,所以不要忘记过滤用户 ID(或名称或其他内容)。

SELECT l.subject, l.link from linktable l cross join 
users u WHERE `l.days_after_reg` <= datediff(Now(), u.registrationDate) 
and u.id=5

【讨论】:

    猜你喜欢
    • 2016-06-13
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多