php mail () statments

4 Cevap php

Merhaba ben veritabanındaki tüm kullanıcıların infomation almak ve zaman damgası (fourteendays) kontrol edin ve şimdi çalışma zamanı var biraz zaman bunu kontrol etmek için çalışıyorum ama'' t zamanı geldiğinde tüm göndermek alabilirsiniz > fourteendays

 $result1 = mysql_query("SELECT * FROM accounts") or die (mysql_error()); 
 while ($row1 = mysql_fetch_array($result1)) {
 $users_email = $row1['email'];
 $user_name = $row1['user'];
 $days_time = $row1['fourteendays'];
 if($timenow > $days_time){
 mail( $users_email, $subject, $emailbody, $headers);
 echo "email sent!";
 }
 }

Teşekkür ederim.

4 Cevap

Bunun yerine geri sorgusunda tüm veri çekme, SQL tarih karşılaştırma yapıyor tavsiye:

SELECT * FROM accounts WHERE DateDiff(Now(), fourteendays) > 14

Ayrıca, ne veritabanında bu sütunda? Bir damgası ise, neden sadece gibi demiyorlar? Ben bir şey eksik?

Deneyin. Ya da daha büyük 14 gün eşit şu.

 if($timenow >= $days_time){
     mail( $users_email, $subject, $emailbody, $headers);
    echo "email sent!";
 }

Ayrıca SELECT * kötü bir uygulamadır. Yalnızca bu sorguda ihtiyaç alanları seçmelisiniz.

Ben zaten '$ timenow' script önceki değişken bir yere koyduk ve ben emin karşılaştırırken hem zaman biçimleri aynı olduğunu kontrol yapmak varsayıyorum. Yani geçmişte benim sorun oldu.

Tarih ile ilgili php bilgi için aşağıdaki bağlantıyı ziyaret edin

http://ca.php.net/manual/en/function.date.php

Hatta

SELECT * FROM accounts WHERE fourneendays < (NOW() - INTERVAL 14 DAYS);

O UTC olmayacak (Ama, bu doğru biliyordu) - ŞİMDİ () istediğiniz zaman damgası verdiğini varsayarak yaşıyorum?