繁体   English   中英

如果while循环中的if语句不更新数据库中的所有用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM