Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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
Php 如何更新超过30秒或30分钟的行_Php_Mysql - Fatal编程技术网

Php 如何更新超过30秒或30分钟的行

Php 如何更新超过30秒或30分钟的行,php,mysql,Php,Mysql,我正试图找出如何更新超过30秒或30分钟的MySQL行 $sql = "SELECT C.sessid, C.datetime, U.username, U.firstname, U.lastname, U.sessid FROM checkins C, users U WHERE U.sessid = C.sessid AND SUBTIME(NOW(),'0 00:01:00')>C.datetime"; $result = mysql_query( $sql ); while( $r

我正试图找出如何更新超过30秒或30分钟的MySQL行

$sql = "SELECT C.sessid, C.datetime, U.username, U.firstname, U.lastname, U.sessid FROM checkins C, users U WHERE U.sessid = C.sessid AND SUBTIME(NOW(),'0 00:01:00')>C.datetime";
$result = mysql_query( $sql );
while( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {
mysql_query("UPDATE checkins SET status = 'was in'");
}
这里我加入了表,只有users表和checkins表。
我正在使用subtime来确定时差,并尝试更新checkins表中的行,如果C.datetime超过1分钟,只是为了测试

这就是您要找的吗

UPDATE checkins c join
       users u
       on c.sessid = u.sessid
    SET status = 'was in'
    WHERE c.datetime < now() - interval 30 second;
更新签入c连接
用户u
在c.sessiond=u.sessiond上
设置状态='was in'
其中c.datetime
可能不需要
users
表,除非您需要它进行筛选


只需将
30秒
更改为
30分钟
,间隔30分钟。

感谢gordon的帮助,尽管仍然无法启动,但我使用date(“Y-m-d H:i:s”)作为c.datetime您应该使用
datetime
在数据库中存储日期,不是字符串。我没有使用datetime,因为它总是返回0000-00-00:00:00。不幸的是,这不起作用。“对不起。”莫蒂。您应该修复数据,以便以本机格式存储日期/时间值。