diff --git a/src/web/server/setup/connect_db.php b/src/web/server/setup/connect_db.php index fb5041e..a42d6f7 100644 --- a/src/web/server/setup/connect_db.php +++ b/src/web/server/setup/connect_db.php @@ -21,4 +21,10 @@ if ($db_conn->connect_error) { $query = "USE jisangs"; $result = mysqli_query($db_conn, $query); + +function send_error_message($replyJSON, $error_message) { + $replyJSON["ERROR"] = $error_message; + echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE); +} + ?> \ No newline at end of file diff --git a/src/web/server/user/login.php b/src/web/server/user/login.php index 3cdf2b3..5e5fd85 100644 --- a/src/web/server/user/login.php +++ b/src/web/server/user/login.php @@ -18,32 +18,56 @@ if(!is_numeric($enterCode)) { include "./../setup/connect_db.php"; -$return_array = array(); +$maestro_id = get_maestro_id($maestro_name); +if($maestro_id == null) { + send_error_message($replyJSON, "no maestro id"); + exit; +} -$query = "SELECT MaestroID FROM moty_maestro WHERE Name=?"; -$stmt = $db_conn->prepare($query); -$stmt->bind_param('s', $maestro_name); -$stmt->execute(); -$stmt->bind_result($maestro_id); -// while($stmt->fetch()) { -// ; -// } -$stmt->fetch(); -$stmt->close(); +$replyJSON = get_login_data($maestro_id, $name, $enterCode); +if($replyJSON["UserID"] == null) { + send_error_message($replyJSON, "invalid username and entercode"); + exit; +} -// $maestro_id = 1; -$query = "SELECT UserID FROM moty_user WHERE MaestroID=? AND Name=? AND enterCode=?"; -$stmt = $db_conn->prepare($query); -$stmt->bind_param('iss', $maestro_id, $name, $enterCode); -$stmt->execute(); -$stmt->bind_result($user_id); -// while($stmt->fetch()) -$stmt->fetch(); -$stmt->close(); -$db_conn->close(); +echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE); -$jsonUserData["MaestroID"] = $maestro_id; -$jsonUserData["UserID"] = $user_id; -echo json_encode($jsonUserData, JSON_UNESCAPED_UNICODE); + + +function get_maestro_id($maestro_name) { + global $db_conn; + + $query = "SELECT MaestroID FROM moty_maestro WHERE Name=?"; + $stmt = $db_conn->prepare($query); + $stmt->bind_param('s', $maestro_name); + $stmt->execute(); + $stmt->bind_result($maestro_id); + // while($stmt->fetch()) { + // ; + // } + $stmt->fetch(); + $stmt->close(); + + return $maestro_id; +} + +function get_login_data($maestro_id, $name, $enterCode) { + global $db_conn; + + $query = "SELECT UserID FROM moty_user WHERE MaestroID=? AND Name=? AND enterCode=?"; + $stmt = $db_conn->prepare($query); + $stmt->bind_param('iss', $maestro_id, $name, $enterCode); + $stmt->execute(); + $stmt->bind_result($user_id); + // while($stmt->fetch()) + $stmt->fetch(); + $stmt->close(); + $db_conn->close(); + + $replyJSON["MaestroID"] = $maestro_id; + $replyJSON["UserID"] = $user_id; + + return $replyJSON; +} ?> \ No newline at end of file diff --git a/src/web/sql/insert_app.sql b/src/web/sql/insert_app.sql new file mode 100644 index 0000000..bf23e51 --- /dev/null +++ b/src/web/sql/insert_app.sql @@ -0,0 +1,35 @@ +USE jisangs; + +INSERT INTO moty_app VALUES + (1, 'korean_basic', 1), + (2, 'korean_left_upper', 1), + (3, 'korean_second_finger', 1), + (4, 'korean_right_upper', 1), + (5, 'korean_left_lower', 1), + (6, 'korean_right_lower', 1), + (7, 'korean_left_upper_double', 1), + (8, 'korean_right_upper_double', 1), + (9, 'korean_word', 1), + (10, 'korean_sentence', 1), + + (11, 'english_basic', 1), + (12, 'english_left_upper', 1), + (13, 'english_second_finger', 1), + (14, 'english_right_upper', 1), + (15, 'english_left_lower', 1), + (16, 'english_right_lower', 1), + (19, 'english_word', 1), + (20, 'english_sentence', 1); + +INSERT INTO moty_app VALUES + (101, 'space_invaders', 101); + + + +INSERT INTO moty_activate_app VALUES + (1, 1, 1), + (2, 1, 9), + (3, 1, 10), + (4, 1, 19), + (5, 1, 20), + (6, 1, 101); diff --git a/src/web/sql/make_db.sql b/src/web/sql/make_db.sql new file mode 100644 index 0000000..83f1e71 --- /dev/null +++ b/src/web/sql/make_db.sql @@ -0,0 +1,65 @@ +CREATE TABLE moty_maestro ( + MaestroID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + Name CHAR(50) NOT NULL, + EnterCode CHAR(10) NOT NULL, + Email CHAR(50) NOT NULL, + AccountType INT UNSIGNED NOT NULL, + AccountStatus INT UNSIGNED NOT NULL, + UserCount INT UNSIGNED NOT NULL, + AcceptClausesDateTime DATETIME NOT NULL, + MaestroTestID INT UNSIGNED +); + +CREATE TABLE moty_user ( + UserID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + MaestroID INT UNSIGNED NOT NULL, + Name CHAR(50) NOT NULL, + EnterCode CHAR(6) NOT NULL + + FOREIGN KEY (MaestroID) REFERENCES moty_maestro(MaestroID) +); + + + +CREATE TABLE moty_app ( + AppID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + AppName CHAR(40) NOT NULL, + AppType INT UNSIGNED NOT NULL +); + +CREATE TABLE moty_activate_app ( + ActivateAppID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + MaestroID INT UNSIGNED NOT NULL, + AppID INT UNSIGNED NOT NULL, + + FOREIGN KEY (MaestroID) REFERENCES moty_maestro(MaestroID), + FOREIGN KEY (AppID) REFERENCES moty_app(AppID) +); + + + +CREATE TABLE moty_best_record ( + BestRecordID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + MaestroID INT UNSIGNED NOT NULL, + AppID INT UNSIGNED NOT NULL, + UserID INT UNSIGNED NOT NULL, + BestRecord FLOAT NOT NULL, + RecordDateTime DATETIME NOT NULL, + + FOREIGN KEY (MaestroID) REFERENCES moty_maestro(MaestroID), + FOREIGN KEY (AppID) REFERENCES moty_app(AppID), + FOREIGN KEY (UserID) REFERENCES moty_user(UserID) +); + +CREATE TABLE moty_ranking ( + RankingID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + MaestroID INT UNSIGNED NOT NULL, + AppID INT UNSIGNED NOT NULL, + RankingType INT UNSIGNED NOT NULL, + Rank INT UNSIGNED NOT NULL, + UserID INT UNSIGNED NOT NULL, + + FOREIGN KEY (MaestroID) REFERENCES moty_maestro(MaestroID), + FOREIGN KEY (AppID) REFERENCES moty_app(AppID), + FOREIGN KEY (UserID) REFERENCES moty_user(UserID) +);