내가 http://imgur.com/a/CXuJX확인 개별 MySQL의 테이블 행 만 그들에 함수를 적용이
나는 다음 턴을 처리하기 위해 실행하는 PHP 파일을 실행할 때마다 (ID 차이) 다른 사용자와 테이블이,이이 특정 테이블을 갱신하는 코드의 일부 : - 'residenceTurns'열
$get_turn_update = mysqli_query($connect, "SELECT * FROM turn_update") or die (mysqli_error($connect));
while ($user_turn_update = mysqli_fetch_assoc($get_turn_update)) {
if ($user_turn_update['residenceTurns'] > 0) {
$residencesBuilt = ceil($user_turn_update['residence']/$user_turn_update['residenceTurns']);
$residences_turn_update = mysqli_query($connect, "UPDATE turn_update SET residenceTurns = residenceTurns - 1") or die (mysqli_error($connect));
$residences_update = mysqli_query($connect, "UPDATE turn_update SET residence = residence - '".$residencesBuilt."'") or die (mysqli_error($connect));
$residences_built_update = mysqli_query($connect, "UPDATE buildings SET residence = residence + '".$residencesBuilt."'") or die (mysqli_error($connect));
}
}
기본적으로 '거주'열 나머지 회전에 걸쳐 건설 될 예정 주택의 양입니다.
문제는 예를 들어 ID가 3 인 사용자가 자신의 집을 "빌드"하고 residenceTurns를 1 씩 감소시킬 때 다른 사용자 (이 경우 ID는 4) 건설중인 주택은 같은 금액의 제거 (-1) 및 거주 금액 (해당 금액에 따라 다름)을 얻습니다.
예를 들면 그래서, 우리는 매개 변수와 함께 시작하는 경우 :
- ID | 거주 | residenceTurns
- 3 | 10 | 2
- 4 | 0 | 0
1 회전에서 우리가
- ID를해야합니다 | 거주 | residenceTurns
- 3 | 5 | 1
- 4 | -5 | | -1 2
우리가
- ID를해야합니다집니다 거주 | residenceTurns
- 3 | 0 | 0
- 4 | -10 | -2
내가 필요한 것은 행 (사용자)이 건물의 양을 소유하고 있고 그 사람에게만 영향을주고 모든 사용자에 대해 개별적으로 처리되는 것입니다. 당신은 당신의 UPDATE 문에 WHERE 절을 사용하지 않는
... 또한 첫 번째'SELECT'에서'whereerenceTurns> 0'을 추가하면 루프의 if 문이 필요 없다는 것을 의미합니다. –
잘 작동합니다! 도와 주셔서 감사합니다 :) – Romtim
Magnus, 그 통찰력에 감사드립니다. 내가 집을 지키기 만하면 효과가있을 수 있지만 while 루프 안에는 20 개의 if 문이 실제로 따라옵니다. 그것들은 모두 동일하고, 단지 다른 건물들과 각각의 차례입니다. 이 사건에 대한 제안을 해 주시겠습니까? 이 jsfiddle - https : // jsfiddle에 코드 예를 저장했습니다.net/5yvcurmv/ – Romtim