mysql テーブルに postdate と status 列があります。現在、投稿のステータスは= 1です。投稿を15日送信した後、ステータスを0に変更したいだけです。誰でも助けてくれます。
$todays = date('d-m-Y');
echo $todays;
mysql_query("UPDATE property SET status=1 WHERE expiredate > '".$todays."'");
//echo "record updated!";
あなたの日付は逆です。MySQL の日付形式はYYYY-MM-DD
$todays = date('d-m-Y');
する必要があります
$todays = date('Y-m-d');
さらに、これを行うためのより良い方法は、純粋な SQL を使用することです。
UPDATE property SET status=0 WHERE expiredate < CURRENT_DATE - INTERVAL 15 DAY
これは、実行する cron スクリプトと MySQL ステートメントの組み合わせになります。
まず、cron エントリはおそらく 1 日 1 回実行されます (この例では 1 日 1 回、午前 1 時に実行されます)。
* * * 1 0 /path/to/script.php
次に、PHPスクリプトはMySQLクエリを作成します(PHP変数は必要ありません)-テーブルの想定された名前「プロパティ」を使用します
$db = new mysqli('host', 'user', 'password', 'database');
$db->query('update property set status=0 where status=1
and expiredate < date_sub(now(), interval 15 day');
これにより、現在の有効期限が自動的に取得され、15 日が差し引かれ、それが計算に使用されます。さらに、ステータスが 1 であることを確認して、既に更新されているテーブルのフィールドを更新し続けないようにします。
それに応じてステータスを設定するには、クエリを定期的に実行する必要があります。DB に対してクエリを実行するスクリプトを毎日、ある時間に実行することができます。Linux サーバーを使用している場合は、cron ジョブを調べてください。これが探しているものです。