1

我在下面有一个“会话”表:

SessionId(Auto) SessionName  SessionDate SessionTime Duration  Active
1               AASEA        21-09-2012  09:00:00    01:00:00  1
2               SDERF        11-09-2012  10:00:00    01:00:00  1
3               DERSD        30-11-2012  12:00:00    01:30:00  1

现在我想要做的是使用 CRON 能够将上面的会话设置为“活动” - 如果会话在 2012 年 10 月 21 日或更早的一周之前举行,则为 0。所以在上面的会话表中,它应该通过将“活动”更改为 0 来使前 2 行处于非活动状态。第三行不会明显改变,因为它的开始日期稍后。因此,该会话在 2013 年 10 月 21 日之前不会自动变为非活动状态。

所以我想知道我以前没有使用过 CRON,这是一项微妙的任务,因为需要对其进行测试以确保它有效,有人知道如何编写 php/CRON 脚本以便它执行以下操作:

  • 将所有开始日期正好是一周或在当年 10 月 21 日之前的会话的“活动”值设置为 0?
  • 它必须能够自动知道当前年份是什么
  • 该程序每年 10 月 21 日进行一次

谢谢

4

1 回答 1

0

将此脚本写入 php 文件并直接保存在应用程序的某个位置。

<?php
$con = mysql_connect("localhost","root","password");
$db = mysql_select_db("your_database");


$createDate = mktime(0,0,0,10,21,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
$sql = mysql_query("UPDATE Session SET Active = 0 WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= '".$selectedDate."'");

?>

现在您需要登录到您的托管站点 - cPanel 并访问 CRON 作业。在那里你需要设置一个新的 CRON 作业。这是一个如何设置 cron 作业的教程 - http://www.youtube.com/watch?v=0OBvGbyj15Q

只需将视频中使用的 url 替换为上面编写的脚本,它应该可以正常工作。确保替换凭据和数据库。

您可以在每年 10 月 21 日设置 cron 作业,也可以每天运行它。无论如何,我们的脚本都会验证日期,所以如果您也每天运行 cron 作业也没有问题。这不是一个昂贵的查询,因此使用的资源是最低限度的。

于 2012-10-21T01:39:29.320 回答