0

我正在处理会员帐户页面。该页面工作正常,我的表格中有一行显示该人注册的日期。人们将下订单并在他们的帐户页面上显示他们的累积积分。我想写的功能是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一栏,然后搜索一下,显示在他们的会员页面上?提前致谢!

4

2 回答 2

1

您应该能够在查询本身中做到这一点:

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

第二个问题:

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

订单(订单 ID,用户 ID,订单信息,...)

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

SELECT o.* FROM users u, orders o WHERE u.user_id = 1 AND o.user_id = u.user_id
于 2012-12-18T19:34:13.430 回答
0

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

于 2012-12-18T19:38:15.243 回答