From 871d402dba6f6292c7233b60d59b6401dc3fed53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=A2=E1=84=91=E1=85=B3=E1=86=AF=20=E1=84=82?= =?UTF-8?q?=E1=85=A9=E1=84=90=E1=85=B3=E1=84=87=E1=85=AE=E1=86=A8?= Date: Mon, 6 Aug 2018 18:23:34 +0900 Subject: [PATCH] Fix: add/delete player count bug --- src/web/server/player/add_player.php | 37 ++++++++++++- src/web/server/player/delete_player.php | 71 +++++++++++++++++-------- src/web/server/player/login.php | 1 + 3 files changed, 87 insertions(+), 22 deletions(-) diff --git a/src/web/server/player/add_player.php b/src/web/server/player/add_player.php index 299a647..3f4615f 100644 --- a/src/web/server/player/add_player.php +++ b/src/web/server/player/add_player.php @@ -43,8 +43,11 @@ if($result === null) { exit; } -increase_player_count($maestroID, 1); +// increase_player_count($maestroID, 1); +$count = count_registered_player($maestroID); +update_count_registered_player($maestroID, $count); +set_data("count", $count); send_result_success(); exit; @@ -131,4 +134,36 @@ function increase_player_count($maestroID, $count) { $stmt->execute(); } +function count_registered_player($maestroID) { + global $db_conn; + + $query = " + SELECT COUNT(PlayerID) + FROM moty_player + WHERE MaestroID = ? AND AccountType = 0 + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param("i", $maestroID); + $stmt->execute(); + $stmt->bind_result($countPlayer); + // while($stmt->fetch()) + $stmt->fetch(); + $stmt->close(); + + return $countPlayer; +} + +function update_count_registered_player($maestroID, $countPlayer) { + global $db_conn; + + $query = " + UPDATE moty_maestro + SET PlayerCount = ? + WHERE MaestroID = ? + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param("ii", $countPlayer, $maestroID); + $stmt->execute(); +} + ?> \ No newline at end of file diff --git a/src/web/server/player/delete_player.php b/src/web/server/player/delete_player.php index 8bac888..c32facb 100644 --- a/src/web/server/player/delete_player.php +++ b/src/web/server/player/delete_player.php @@ -10,22 +10,25 @@ $playerID = $_POST["player_id"]; deletePlayer($maestroID, $playerID); -$result = hasPlayerID($maestroID, $playerID); -if($result === true) { +$countPlayer = countPlayerID($maestroID, $playerID); +if($countPlayer > 0) { set_error_message("학생 계정 삭제 실패"); send_result_fail(); exit; } -$result = hasPlayerRecord($maestroID, $playerID); -if($result === true) { +$countPlayer = countPlayerRecord($maestroID, $playerID); +if($countPlayer > 0) { set_error_message("학생 플레이 기록 삭제 실패"); send_result_fail(); exit; } -decrease_player_count($maestroID, 1); +// decrease_player_count($maestroID, 1); +$count = count_registered_player($maestroID); +update_count_registered_player($maestroID, $count); +set_data("count", $count); send_result_success(); exit; @@ -60,48 +63,42 @@ function deletePlayer($maestroID, $playerID) { // } } -function hasPlayerID($maestroID, $playerID) { +function countPlayerID($maestroID, $playerID) { global $db_conn; $query = " - SELECT PlayerID + SELECT COUNT(PlayerID) FROM moty_player - WHERE MaestroID=? AND PlayerID=? + WHERE MaestroID = ? AND PlayerID = ? "; $stmt = $db_conn->prepare($query); $stmt->bind_param("ii", $maestroID, $playerID); $stmt->execute(); - $stmt->bind_result($playerID); + $stmt->bind_result($countPlayer); // while($stmt->fetch()) $stmt->fetch(); $stmt->close(); - if($playerID !== null) - return true; - - return false; + return $countPlayer; } -function hasPlayerRecord($maestroID, $playerID) { +function countPlayerRecord($maestroID, $playerID) { global $db_conn; $query = " - SELECT PlayerID + SELECT COUNT(PlayerID) FROM moty_best_record - WHERE MaestroID=? AND PlayerID=? + WHERE MaestroID = ? AND PlayerID = ? "; $stmt = $db_conn->prepare($query); $stmt->bind_param("ii", $maestroID, $playerID); $stmt->execute(); - $stmt->bind_result($playerID); + $stmt->bind_result($countPlayer); // while($stmt->fetch()) $stmt->fetch(); $stmt->close(); - if($playerID !== null) - return true; - - return false; + return $countPlayer; } function decrease_player_count($maestroID, $count) { @@ -117,4 +114,36 @@ function decrease_player_count($maestroID, $count) { $stmt->execute(); } +function count_registered_player($maestroID) { + global $db_conn; + + $query = " + SELECT COUNT(PlayerID) + FROM moty_player + WHERE MaestroID = ? AND AccountType = 0 + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param("i", $maestroID); + $stmt->execute(); + $stmt->bind_result($countPlayer); + // while($stmt->fetch()) + $stmt->fetch(); + $stmt->close(); + + return $countPlayer; +} + +function update_count_registered_player($maestroID, $countPlayer) { + global $db_conn; + + $query = " + UPDATE moty_maestro + SET PlayerCount = ? + WHERE MaestroID = ? + "; + $stmt = $db_conn->prepare($query); + $stmt->bind_param("ii", $countPlayer, $maestroID); + $stmt->execute(); +} + ?> \ No newline at end of file diff --git a/src/web/server/player/login.php b/src/web/server/player/login.php index b3a8edc..69e5087 100644 --- a/src/web/server/player/login.php +++ b/src/web/server/player/login.php @@ -24,6 +24,7 @@ if($playerID === null) { } +set_data("MaestroID", $maestroID); set_data("PlayerID", $playerID); send_result_success(); exit;