سؤال

أنا أحاول الحصول على جميع معلومات المستخدمين من قاعدة البيانات و التحقق من الطابع الزمني (fourteendays) والتحقق من ذلك مع الوقت الآن لدي الوقت قليلا ولكن أنا لا يمكن الحصول عليها أن ترسل إلى كل عندما يحين الوقت > 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!";
 }
 }
هل كانت مفيدة؟

المحلول

وأنا أوصي به المقارنة التاريخ في SQL، بدلا من الانسحاب كافة البيانات في الاستعلام الخاص بك:

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

وأيضا، ما هو موجود في هذا العمود في قاعدة البيانات؟ إذا كان هذا هو طابع زمني، لماذا لا مجرد دعوة على هذا النحو؟ أنا شيء مفقود؟

نصائح أخرى

وحاول. ولهذا أكبر من أو يساوي 14 يوما.

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

وSELECT أيضا * هو ممارسة سيئة. يجب عليك فقط تحديد الحقول التي تحتاج إليها في هذا الاستعلام.

وأفترض أنك قد وضعت بالفعل '$ timenow "مكان متغير سابقة في السيناريو وأود أن تأكد للتأكد من أن كل من الأشكال الوقت هي نفسها عند المقارنة. هو أن مشكلتي في الماضي.

للحصول على معلومات فب المتعلقة التاريخ، يرجى زيارة الرابط التالي

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

أو حتى

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

أنا على افتراض أن الآن() يعطي الطابع الزمني تريد - لن يكون في UTC (ولكن عرفت أنه الحق)?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top