簡體   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