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