Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL表在指定时间未通过PHP cron作业更新_Php_Mysql_Cron - Fatal编程技术网

MySQL表在指定时间未通过PHP cron作业更新

MySQL表在指定时间未通过PHP cron作业更新,php,mysql,cron,Php,Mysql,Cron,我正在开发一个Android应用程序,它有一个MySQL数据库,其中包含一个表,该表包含每个用户的所有登录详细信息。在该表中,我有一个名为Status的列,最初为每个用户分配给0。每天当用户登录到他的帐户并提交数据时,单击提交按钮,状态将更改为1。并且晚上12点,状态应该重置为0。此外,如果用户一天中直到上午10点才提交数据,则应自动向MySQL表插入一行,列值为“无记录”,该行的状态仍然为0。因此,我创建了一个PHP文件,该文件在cpanel中作为cron作业运行。PHP文件每小时检查一次时间

我正在开发一个Android应用程序,它有一个MySQL数据库,其中包含一个表,该表包含每个用户的所有登录详细信息。在该表中,我有一个名为Status的列,最初为每个用户分配给0。每天当用户登录到他的帐户并提交数据时,单击提交按钮,状态将更改为1。并且晚上12点,状态应该重置为0。此外,如果用户一天中直到上午10点才提交数据,则应自动向MySQL表插入一行,列值为“无记录”,该行的状态仍然为0。因此,我创建了一个PHP文件,该文件在cpanel中作为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();

 ?>

我不知道哪里出了问题。有人能检查一下并告诉我问题出在哪里吗?

插入选择的格式不正确:

$second_run = "INSERT into attendance (name,date,attendance) SELECT name, ****, **** from login where status = 0";
您不需要值位,而且我根本不确定结束段是什么。您还试图插入3个值,同时只提供一个值,我在其中添加了****,您需要添加其他值

如果您没有从脚本中得到任何错误,您还应该在脚本中打开错误报告,因为这可能是一个错误

error_reporting(E_ALL);
ini_set('display_errors', 1);

很抱歉,您没有使用mysql数据库的android应用程序。您有一个使用mysql数据库的web应用程序。android应用程序可能会向其发出http请求。现在我们来简化这个问题。发布crontab和cron作业应该执行的脚本。网站上的用户交互不相关。我发布的脚本是应该执行的cron作业。太好了。然后请编辑用户故事并在crontab中编辑。我不明白您对编辑部分所说的。请您详细说明一下。事实上,我插入的是带有时间的表值,其他两列没有记录,这些值不是来自登录表。这就是为什么我要放这些字段。啊-对不起,现在想清楚还为时过早,所以这些值应该放在select中。
error_reporting(E_ALL);
ini_set('display_errors', 1);