Php 自动应答器:订阅SQL语句后1分钟内发送

Php 自动应答器:订阅SQL语句后1分钟内发送,php,mysql,newsletter,auto-responder,Php,Mysql,Newsletter,Auto Responder,我已经创建了自动回复系统,用于订阅具有动态时间条件的感谢信息 一般设置具有时间功能,如1分钟后、1天后、1周后等。当客户订阅我的列表时,基于cron的自动回复程序应发送带有选定时间条件的感谢消息。但是我的sql查询无法正常工作。我尝试了很多查询,但现在没有成功。这是我的身材 订户表 ID mail add_date 1 mail1@gmail.com 2015-06-16 22:11:20 2 mail2@gmail.com 2015-06-16

我已经创建了自动回复系统,用于订阅具有动态时间条件的感谢信息

一般设置具有时间功能,如1分钟后、1天后、1周后等。当客户订阅我的列表时,基于cron的自动回复程序应发送带有选定时间条件的感谢消息。但是我的sql查询无法正常工作。我尝试了很多查询,但现在没有成功。这是我的身材

订户表

ID   mail              add_date
1    mail1@gmail.com   2015-06-16 22:11:20
2    mail2@gmail.com   2015-06-16 22:19:30
当前时间:2015-06-16 22:20:30

SQL查询:

SELECT 
        S.* 
FROM 
        subscribers AS S
        LEFT JOIN tasks AS T ON (T.CID=2 AND S.subscriber_mail=T.subscriber_mail)
        LEFT JOIN unsubscribes AS U ON (U.CID=2 AND S.subscriber_mail=U.subscriber_mail)
WHERE
        (T.subscriber_mail IS NULL)
        AND (U.subscriber_mail IS NULL)


 AND (S.add_date > date_sub('2015-06-16 22:20:30', interval 1 MINUTE)) LIMIT 5000
它成功地发送了,但如果我为“1天后”创建了新条件,它就不能正常工作,它在第一次查询后发送了相同的消息,它不会等待1天

简而言之

我想在订阅后发送3封邮件,1分钟,1天,1个月后


谢谢大家!

也许这能解决你的问题:

SELECT * FROM 
    subscribers
WHERE
    add_date >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)

如果您使用NOW()查询,您将始终拥有不需要的分钟/秒(如果您的差异大于等于一天)。

也许这可以解决您的问题:

SELECT * FROM 
    subscribers
WHERE
    add_date >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)

如果您使用NOW(),您将在查询中始终拥有不需要的分钟/秒(如果您的差异大于等于一天)。

考虑切换方向:在带有日期的表中创建3封邮件。\u add(CURRDATE(),间隔1天)除搜索未发送的电子邮件@v.eigler外,没有理由像that@cmorrissey原因可能是有人想知道邮件是否已发送。@v.eigler如果是这种情况,只需在表中添加3个布尔或日期列,以标记或设置邮件发送时间sent@cmorrissey嗯,我只是说“想想”。但如果你有更好的解决方案,请回答这个问题;)考虑切换方向:在一个带有日期的表中创建3封邮件(CURRDATE(),间隔1天)除搜索未发送的电子邮件@v.eigler外,没有理由像that@cmorrissey原因可能是有人想知道邮件是否已发送。@v.eigler如果是这种情况,只需在表中添加3个布尔或日期列,以标记或设置邮件发送时间sent@cmorrissey嗯,我只是说“想想”。但如果你有更好的解决方案,请回答这个问题;)考虑切换方向:在一个带有日期的表中创建3封邮件(CURRDATE(),间隔1天)除搜索未发送的电子邮件@v.eigler外,没有理由像that@cmorrissey原因可能是有人想知道邮件是否已发送。@v.eigler如果是这种情况,只需在表中添加3个布尔或日期列,以标记或设置邮件发送时间sent@cmorrissey嗯,我只是说“想想”。但如果你有更好的解决方案,请回答这个问题;)