[英]If statement in while loop not updating all users in database
我试图每次运行此脚本时更新数据库中的所有用户以使其旋转+5。
但是它只更新数据库中的第一个用户,直到它轮流进行,然后再更新下一个用户。
我该怎么做才能向所有用户添加5转,但是如果他们有100/100转则不添加任何转弯?
<?php
include ("functions/db_connect.php");
$get_users = mysqli_query($db, "SELECT * FROM `members`") or die(mysql_error());
while($user = mysqli_fetch_assoc($get_users)){
if ($user['current_turns'] < $user['max_turns']) {
$update = mysqli_query($db, "UPDATE `members` SET
`current_turns`=`current_turns`+'5' WHERE `id`='".$user['id']."'") or die(mysql_error());
header("Location: users.php");
exit();
}
}
?>
尝试使用这样的查询来同时更新所有成员,而不是全部选择它们并一遍又一遍地更新它们。
UPDATE members
SET current_turns = LEAST(max_turns, current_turns + 5)
WHERE current_turns < max_turns
使用最小二乘功能将允许current_turns要递增高达max_turns,但是不能超出,因为我认为这是不可取的,但它不依赖于没有列被空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.