PHP cron удаляет день из подписки - PullRequest
0 голосов
/ 09 февраля 2012

Итак, это мой cron.php, который использовался для сброса просматриваемых видео на YouTube каждые 24 часа.Я пытаюсь добиться того, чтобы ptime вычитал балл каждые 24 часа, если он больше 0. Может быть, я делаю это неправильно, но любой совет или рекомендация мне очень помогут.

    <?
    include("database.php");
    if(!(@mysql_connect("$host","$user","$pass") && @mysql_select_db("$tablename"))) {?>No connection...<? }

    mysql_query("UPDATE `cron` SET `time`= unix_timestamp(data_format(data_add( now(), interval 1 day), '%Y-%m-%d') WHERE `name`=`day`");
    mysql_query("DELETE FROM `visits`");
    mysql_query("DELETE FROM `surfed`");
    mysql_query("DELETE FROM `viewed`");
    mysql_query("UPDATE `premium` SET `ptime`=`ptime`- 1 WHERE `ptime` > '0'");
    ?>

этодата создания моего cron

SQL-результат

Хост: localhost
База данных: view4coins
Время генерации: 09 февраля 2012 в 17:43
Генерируется: phpMyAdmin 3.4.9 / MySQL 5.5.20-log
Запрос SQL: SELECT * FROM cron LIMIT 0, 30;
Строки: 3
время имени
день 1328836267
час 1297720800
неделя 1297900801

Это шаблонный скрипт, который я приобрел у codecanyon, который владелец больше не поддерживает

1 Ответ

0 голосов
/ 09 февраля 2012

Полагаю, в поле time есть unixtime, поэтому проще обновлять время напрямую с помощью mysql, чем вычислять его вручную.

    UPDATE `cron` 
    SET `time`= unix_timestamp( 
               date_format(date_add( now(), interval 1 hour), '%Y-%m-%d') 
    ) 
    WHERE `name`='hour'  and  date_add( now(), interval 1 hour) <= time

    UPDATE `cron` 
    SET `time`= unix_timestamp( 
               date_format(date_add( now(), interval 1 day), '%Y-%m-%d') 
    ) 
    WHERE `name`='day'  and  date_add( now(), interval 1 day) <= time

    UPDATE `cron` 
    SET `time`= unix_timestamp( 
               date_format(date_add( now(), interval 1 week), '%Y-%m-%d') 
    ) 
    WHERE `name`='week'  and  date_add( now(), interval 1 week) <= time
...