【问题标题】:Working with date function mysql, setting up a cron job使用日期函数mysql,设置一个cron作业
【发布时间】:2012-12-19 03:51:54
【问题描述】:

我正在处理会员帐户页面。该页面工作正常,我的表格中有一行显示该人注册的日期。人们将下订单并在他们的帐户页面上显示他们的累积积分。我想写的功能是30天后,积分从0开始。我正在考虑通过我的cPanel为此设置一个cron作业。但我不知道如何使用 date 函数来检查 30 天是否已经过去。这基本上是我目前的想法:

`<?php 
//connect to my database and run a query for the date I already have
//set the date to a variable using mysql_fetch_assoc(query)

//now the part where I need help for the function
if(registerdate == (registerdate+30days){
sql = mysql_query("UPDATE members SET accPoints='0' WHERE id='$userid' and username='$username'");
}
?>`

所以请帮我写出这个函数的代码。还有一个快速的问题:是否可以用多个数据填充表格列,然后检索它以进行显示?基本上是把一个人的所有订单都放在Orders栏目中,然后搜索并显示在他们的会员页面上?提前致谢!

【问题讨论】:

  • 你应该使用mysql的日期函数,而不是php的

标签: php mysql date cron


【解决方案1】:

您应该能够在查询本身中执行此操作:

"UPDATE members SET accPoints='0' WHERE id='$userid' and username='$username' AND registerdate + interval 30 DAY < NOW()"

第二个问题:

如果我对您的理解正确,您希望将多条数据与每个用户相关联。为此,您需要创建另一个与 users 表具有多对多关系的表:

orders(order_id, user_id, orderinfo, ...)

然后您可以像这样查询用户 1 的每个订单:

SELECT o.* FROM users u, orders o WHERE u.user_id = 1 AND o.user_id = u.user_id

【讨论】:

  • 如果真的那么简单,那应该对我有用。我的第二个问题是如何在表格内的一个 id 下添加多个值,然后解析并显示它?
  • 好吧,这对我来说是新事物,多对多关系。如果我创建了一个新表,并且当成员下订单时,我刚刚输入了 id、orders 和 date,然后在该数据库中查询设置 session 的相同 id 并将其显示在成员页面上怎么办?那行得通吗?希望这是有道理的。
  • 是的,这是同一个想法。我给出的查询是如果你想检索多个数据。
  • 好的,非常感谢您的帮助!
【解决方案2】:

你可以做很多不同的事情。您可以使用 strtotime 将日期转换为 UNIX 时间戳,并添加秒数以查看您的 cron 作业是否达到阈值或 add dates 或使用纯 SQL 根据您的 WHERE 返回所有需要“积分”的人子句。

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 2017-02-13
    • 2015-02-10
    • 2011-08-15
    • 2015-04-14
    • 1970-01-01
    • 2012-12-20
    • 2019-06-15
    • 1970-01-01
    相关资源
    最近更新 更多