使用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可能是因为用户名未加引号,更新了答案,别忘了将“表”更改为真实的表