Files
chocomae/src/web/server/player/add_player.php
T
2018-10-06 12:51:24 +09:00

168 lines
3.7 KiB
PHP

<?php
header("Content-Type: application/json");
include "./../lib/send_reply_json.php";
include "./../lib/maestro_account_info.php";
include "./../setup/connect_db.php";
$maestroID = $_POST["maestro_id"];
$playerName = $_POST["player_name"];
$enterCode = $_POST["enter_code"];
/*
if(!is_numeric($enterCode)) {
send_error_code("생년월일이 숫자가 아닙니다. : ".$enterCode);
exit;
} else if(strlen($enterCode) != 6) {
send_error_code("6자리 숫자값을 정확히 입력하세요 : YYMMDD (예 : 120131) : ".$enterCode);
exit;
}
*/
$result = has_player_name($maestroID, $playerName, $enterCode);
if($result !== null) {
set_error_message("이미 등록된 학생과 입장 코드 정보입니다.");
send_result_fail();
exit;
}
$maestroAccountType = get_maestro_account_type($maestroID);
$playerCount = get_player_count($maestroID);
if($playerCount >= get_max_player_count($maestroAccountType)) {
set_error_message("학생을 더 이상 추가할 수 없습니다. (더 많은 학생수로 업그레이드 하세요)");
send_result_fail();
exit;
}
add_player($maestroID, $playerName, $enterCode);
$result = has_player_name($maestroID, $playerName, $enterCode);
if($result === null) {
set_error_message("학생 등록에 실패했습니다.");
send_result_fail();
exit;
}
// increase_player_count($maestroID, 1);
$count = count_registered_player($maestroID);
update_count_registered_player($maestroID, $count);
set_data("count", $count);
send_result_success();
exit;
function has_player_name($maestroID, $playerName, $enterCode) {
global $db_conn;
$query = "
SELECT PlayerID
FROM player
WHERE MaestroID = ? AND Name = ? AND EnterCode = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("iss", $maestroID, $playerName, $enterCode);
$stmt->execute();
$stmt->bind_result($playerID);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
return $playerID;
}
function get_maestro_account_type($maestroID) {
global $db_conn;
$query = "
SELECT AccountType
FROM maestro
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID);
$stmt->execute();
$stmt->bind_result($accountType);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
return $accountType;
}
function get_player_count($maestroID) {
global $db_conn;
$query = "
SELECT PlayerCount
FROM maestro
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("i", $maestroID);
$stmt->execute();
$stmt->bind_result($playerCount);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
return $playerCount;
}
function add_player($maestroID, $playerName, $enterCode) {
global $db_conn;
$query = "
INSERT INTO player (MaestroID, Name, EnterCode)
VALUES (?, ?, ?)
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("iss", $maestroID, $playerName, $enterCode);
$stmt->execute();
}
function increase_player_count($maestroID, $count) {
global $db_conn;
$query = "
UPDATE maestro
SET PlayerCount = PlayerCount + ?
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("ii", $count, $maestroID);
$stmt->execute();
}
function count_registered_player($maestroID) {
global $db_conn;
$query = "
SELECT COUNT(PlayerID)
FROM 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 maestro
SET PlayerCount = ?
WHERE MaestroID = ?
";
$stmt = $db_conn->prepare($query);
$stmt->bind_param("ii", $countPlayer, $maestroID);
$stmt->execute();
}
?>