使用mysqli php更新所选行中的所有行,其中time colum的时间比当前时间短3天

使用mysqli php更新所选行中的所有行,其中time colum的时间比当前时间短3天,php,mysqli,Php,Mysqli,我的数据库中有一个用户表,其中时间列设置为默认时间戳,状态列的值为0或1 我已经选择了username='$username'和status='1'所在的行 现在,我想循环浏览这些选定的行,检查时间列中的时间比当前时间(即time())至少少7天的行,然后更新这些行的状态列,设置status=2 我在网上读了很多东西,但没能做到这一点。。。下面是我当前的代码,我正在使用mysqli $sql= mysqli_query($conn, "select from tables

我的数据库中有一个用户表,其中时间列设置为默认时间戳,状态列的值为
0
1

我已经选择了
username='$username'和status='1'
所在的行

现在,我想循环浏览这些选定的行,检查时间列中的时间比当前时间(即time())至少少7天的行,然后更新这些行的状态列,设置
status=2

我在网上读了很多东西,但没能做到这一点。。。下面是我当前的代码,我正在使用mysqli

$sql= mysqli_query($conn, 
          "select from tables where username=$username and status='1' ") ;

$row=mysqli_query($conn, $sql) ;

您不需要遍历它,因为您可以在update语句中指定where条件:

    $sql= mysqli_query($conn, "UPDATE tables SET status = '2' WHERE username = '$username' AND status = '1' AND time <= CURRENT_DATE - INTERVAL 7 DAY") ;

    mysqli_query($conn, $sql) ;

$sql=mysqli\u query($conn,“UPDATE tables SET status='2',其中username='$username'和status='1',time我刚刚解决了上面的问题,现在对我来说已经很好了。这就是我所做的:

$query=mysqli_query($conn,"select * from table_name");

while($Row = mysqli_fetch_array($query)) {
$day= abs(time ()-$time)/86400;
$ql= mysqli_query($conn, "update table_name set status='2' where name='$username' and status='1' and $day>4"); 
//for 4 days interval
}

谢谢@Andrii Filenko,但这是我在运行代码时收到的错误消息:警告:mysqli_query():C:\xampp1\htdocs\me\test.php联机中的空查询16@Benito可能是因为用户名未加引号,更新了答案,别忘了将“表”更改为真实的表