【发布时间】:2017-10-02 03:34:56
【问题描述】:
我正在开发一个 Android 应用程序,它有一个 MySQL 数据库,其中包含一个表,其中包含每个用户的所有登录详细信息。在该表中,我有一个名为“状态”的列,该列最初为每个用户分配为 0。每天当用户登录到他的帐户并提交数据(点击提交按钮)时,状态变为 1。每晚 12 点,状态应重置为 0。另外,如果用户直到 10 点才提交数据上午一天,对于状态仍为 0 的特定用户,应自动将一行插入到 MySQL 表中,其列值为“无记录”。所以,我创建了一个 PHP 文件,该文件作为 cron 作业运行面板。 PHP 文件每小时检查一次时间。而当前时间是上午 12 点和上午 10 点,它应该进行所需的更改。但是我的 PHP 脚本没有得到所需的结果。脚本如下:
<?php
require "connection.php";
$get_time = "select date_format(NOW(), '%H:%i A') as current_daily_date from dual;";
$convert_time = mysqli_query($connect,$get_time);
$php_time = mysqli_fetch_assoc($convert_time);
$final_time = $php_time["current_daily_date"];
$dateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$d = $dateTime->format("H:i A ");
$e = $dateTime->format("d/m/y");
echo $d;
$s = '00:00';
$g = strtotime($s);
$p = date('H:i A',$g);
echo $p;
$c = '10:00';
$q = strtotime($c);
$r = date('H:i A',$q);
echo $r;
if($d == $p) {
$run = "UPDATE login SET status = 0;";
$connect->query($run);
echo "Status updated";
}
else if($d == $r) {
$second_run = "INSERT into attendance (name,date,attendance) VALUES ((SELECT name from login where status = 0 ), '$e' , 'No Records');";
$connect->query($second_run);
echo "Marked as No Records";
}
else {
echo "Not the correct time to change the status.";
}
$connect->close();
?>
我已经为 cron 作业设置了我的电子邮件,以便将输出发送到我的邮件中。但即使在上午 12 点,表格也没有更新。
输出是:
00:00 AM 00:00 AM10:00 AMNot the correct time to change the status.
我不知道我哪里出错了。任何人都可以检查并告诉我问题是什么?
【问题讨论】:
-
抱歉,您没有使用 mysql 数据库的安卓应用。您有一个使用 mysql 数据库的 Web 应用程序。 android 应用可能会向其发出 http 请求。
-
现在请简化问题。发布您的 crontab 和 cron 作业应该执行的脚本。网站上的用户交互无关紧要。
-
我发布的脚本是应该执行的 cron 作业。
-
太棒了。然后请编辑掉用户故事并在 crontab 中编辑
-
我不明白你所说的关于编辑部分的内容。请你详细说明一下。