我试图更新数据库中的所有用户,每次运行此脚本时都会获得+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();
}
}
?>
答案 0 :(得分:0)
尝试使用这样的查询来同时更新所有成员,而不是全部选择它们并循环更新它们。
UPDATE members
SET current_turns = LEAST(max_turns, current_turns + 5)
WHERE current_turns < max_turns
使用LEAST函数将允许current_turns增加到max_turns而不会超过,因为我认为这是不可取的,但它确实取决于两列都不为。