我正在为一个非常小的 CMS 使用 PHP 和 MySQL。
功能要求之一是系统返回续订日期前的剩余天数(例如从现在到数据库中的续订字段还剩多少天)
我打算采取的过程是每天早上@3AM,检查所有记录(通过 PHP)并更新必填字段。诀窍是,如果这个数字小于 30(天),那么发送电子邮件给 ....who ever。
这似乎非常不切实际,因为它会在一个循环中可能对数据库过于紧张。
如果我可以让数据库进行此计算,那就更好了(不确定如何)。
然而
无论如何,我仍然必须遍历所有记录,以查看是否有 <30 天前续订(发送电子邮件)。
如果有人有更好的建议,我将不胜感激。下面是一些我想做的presudo代码
$q = "SELECT * FROM testDB ";
$r = mysql_query($q);
while ( $a = mysql_fetch_assoc($r) ) {
$rnlDate= stripslashes($a['renewal_Date']); //get Date inserted in table
$thisId= stripslashes($a['id']); // current record id
$timeLeft=$rnlDate-date(); // get time left
if($timeLeft <=30)
{
$makeEmail= createEmail(field_ID); // not sure how to wait until this function completes
}
doUpdate($timeLeft);
function doUpdate($timeLeft)
{
"UPDATE INTO testDB WHERE 'id' =$thisId; VALUES('','$timeLeft',)";
}
显然只是在这里传递这个想法,但非常欢迎任何其他解决方案。
干杯