非常に小さな CMS に PHP と MySQL を使用しています。
機能要件の 1 つは、システムが更新日までの残り日数を返すことです (たとえば、現在からデータベースの更新フィールドまでの残り日数)。
私が取ろうとしていたプロセスは、毎朝午前 3 時で、(PHP を介して) すべてのレコードを調べ、必要なフィールドを更新しました。秘訣は、この数値が 30 (日) 未満の場合は、誰にでも電子メールを送信することです。
これは非常に現実的ではないように思われます。また、ループになるため、データベースへの負荷が強すぎる可能性があります。
データベースにこの計算をさせることができれば、それはより良いでしょう(方法はわかりません)。
でも
いずれにせよ、すべてのレコードをループして、更新 (電子メールの送信) までに 30 日未満かどうかを確認する必要があります。
誰かがより良い提案があれば、私はとても感謝しています. 以下は、私がやりたいいくつかの前提コードです
$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',)";
}
明らかにここでアイデアを渡すだけですが、他の解決策は大歓迎です。
乾杯