PHP cron从订阅中删除了一天

时间:2012-02-09 16:51:58

标签: php mysql cron membership subscription

所以这是我的cron.php,用于每24小时重置一次观看过的YouTube视频。如果ptime大于0,我试图达到每24小时扣除ptime的地方。也许我完全做错了,但任何建议或参考都会对我有所帮助。

    <?
    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
世代时间:2012年2月9日下午5点43分 生成者:phpMyAdmin 3.4.9 / MySQL 5.5.20-log
SQL查询:SELECT * FROM cron LIMIT 0,30;
行:3
姓名时间
第1328836267号 小时1297720800
第1297900801周

这是我在codecanyon上购买的模板脚本,所有者不再提供支持

1 个答案:

答案 0 :(得分:0)

我认为字段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