質問

データベースからすべてのユーザー情報を取得し、タイムスタンプ(14日間)を確認し、時間を確認しようとしていますは> 14日間

 $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」変数を既に設定していると仮定し、比較するときに両方の時間形式が同じであることを確認します。それは過去の私の問題でした。

日付関連のphp情報については、次のリンクをご覧ください

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

または

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

NOW()が希望するタイムスタンプを提供すると仮定しています-UTCではありません(しかし、あなたは知っていますか?)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top