Fix: player_list.php reivsed
This commit is contained in:
@@ -1,10 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
echo "NA_service_db_setting.php included\n";
|
|
||||||
|
|
||||||
$db_host = "localhost";
|
|
||||||
$db_user = "jisangs";
|
|
||||||
$db_passwd = "Fr12nds95";
|
|
||||||
$db_name = "jisangs";
|
|
||||||
|
|
||||||
?>
|
|
||||||
@@ -8,21 +8,23 @@ if ($has_file) {
|
|||||||
|
|
||||||
class DBConnector
|
class DBConnector
|
||||||
{
|
{
|
||||||
private $db_conn;
|
private $mysqli, $stmt, $query, $paramTypeList, $paramValueArray;
|
||||||
private $db_host, $db_user, $db_passwd, $db_name;
|
private $db_host, $db_user, $db_passwd, $db_name;
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
global $db_host, $db_user, $db_passwd, $db_name;
|
global $db_host, $db_user, $db_passwd, $db_name;
|
||||||
|
|
||||||
|
$this->stmt = null;
|
||||||
|
$this->paramTypeList = "";
|
||||||
|
$this->paramValueArray = null;
|
||||||
|
|
||||||
if (isset($db_host) && $db_host !== null) {
|
if (isset($db_host) && $db_host !== null) {
|
||||||
// echo "db_host variable\n";
|
|
||||||
$this->db_host = $db_host;
|
$this->db_host = $db_host;
|
||||||
$this->db_user = $db_user;
|
$this->db_user = $db_user;
|
||||||
$this->db_passwd = $db_passwd;
|
$this->db_passwd = $db_passwd;
|
||||||
$this->db_name = $db_name;
|
$this->db_name = $db_name;
|
||||||
} else {
|
} else {
|
||||||
// echo "no db_host variable\n";
|
|
||||||
$this->db_host = "localhost";
|
$this->db_host = "localhost";
|
||||||
$this->db_user = "chocomae";
|
$this->db_user = "chocomae";
|
||||||
$this->db_passwd = "sEobMPuJ2A8KTfwU";
|
$this->db_passwd = "sEobMPuJ2A8KTfwU";
|
||||||
@@ -37,27 +39,29 @@ class DBConnector
|
|||||||
public function connectDB()
|
public function connectDB()
|
||||||
{
|
{
|
||||||
// connect db
|
// connect db
|
||||||
$this->db_conn = new mysqli($this->db_host, $this->db_user, $this->db_passwd, $this->db_name);
|
$this->mysqli = new mysqli($this->db_host, $this->db_user, $this->db_passwd, $this->db_name);
|
||||||
if ($this->db_conn->connect_error) {
|
// if ($this->mysqli->connect_error) {
|
||||||
|
if (mysqli_connect_errno()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = "USE chocomae";
|
$query = "USE chocomae";
|
||||||
$result = mysqli_query($this->db_conn, $query);
|
$result = $this->mysqli->query($query);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function closeDB()
|
public function closeDB()
|
||||||
{
|
{
|
||||||
if (isset($this->db_conn) || $this->db_conn === null) {
|
if (isset($this->mysqli) || $this->mysqli === null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->db_conn->connect_error) {
|
if ($this->mysqli->connect_error) {
|
||||||
$this->db_conn->close();
|
$this->mysqli->close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,6 +74,11 @@ class DBConnector
|
|||||||
$variables["name"] = $this->db_name;
|
$variables["name"] = $this->db_name;
|
||||||
return $variables;
|
return $variables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getMysqli()
|
||||||
|
{
|
||||||
|
return $this->mysqli;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -1,152 +1,53 @@
|
|||||||
<?php
|
<?php
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
include "./../lib/connect_db.php";
|
// get parameters from client
|
||||||
|
$maestroID = $_POST["maestroID"];
|
||||||
|
$playerID = $_POST["playerID"];
|
||||||
|
|
||||||
|
|
||||||
include "./../lib/json_builder.php";
|
include "./../lib/json_builder.php";
|
||||||
|
include "./../lib/connect_db.php";
|
||||||
|
|
||||||
$dbConnector = new DBConnector();
|
|
||||||
$isConnected = $dbConnector->connectDB();
|
|
||||||
|
|
||||||
$jsonBuilder = new JsonBuilder();
|
$jsonBuilder = new JsonBuilder();
|
||||||
$jsonBuilder->setData("isConnected", $isConnected);
|
$dbConnector = new DBConnector();
|
||||||
$jsonBuilder->setData("dbVariables", $dbConnector->getDBVariables());
|
|
||||||
|
$isConnected = $dbConnector->connectDB();
|
||||||
|
if (!$isConnected) {
|
||||||
|
$jsonBuilder->setErrorMessage("DB connection : failed");
|
||||||
|
$jsonBuilder->sendResultFail();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$writer = "system";
|
||||||
|
$systemWritingArray = getSystemWritingList($dbConnector, $writer);
|
||||||
|
|
||||||
|
$jsonBuilder->setData("writingArray", $systemWritingArray);
|
||||||
$jsonBuilder->sendResultSuccess();
|
$jsonBuilder->sendResultSuccess();
|
||||||
|
|
||||||
|
|
||||||
|
function getSystemWritingList($dbConnector, $writer)
|
||||||
/*
|
{
|
||||||
|
|
||||||
$maestro_id = $_POST["maestro_id"];
|
|
||||||
$player_id = $_POST["player_id"];
|
|
||||||
|
|
||||||
include "./../lib/send_reply_json.php";
|
|
||||||
include "./../setup/connect_db.php";
|
|
||||||
|
|
||||||
|
|
||||||
$koreanAppList = get_typing_practice_app_list(11);
|
|
||||||
if($koreanAppList === null) {
|
|
||||||
set_error_code("no_app_list");
|
|
||||||
set_error_message("앱 목록을 가져오지 못했습니다.");
|
|
||||||
send_result_fail();
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
$englishAppList = get_typing_practice_app_list(12);
|
|
||||||
if($englishAppList === null) {
|
|
||||||
set_error_code("no_app_list");
|
|
||||||
set_error_message("앱 목록을 가져오지 못했습니다.");
|
|
||||||
send_result_fail();
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$koreanActiveAppList = get_active_typing_practice_app_list($maestro_id, 11);
|
|
||||||
$englishActiveAppList = get_active_typing_practice_app_list($maestro_id, 12);
|
|
||||||
|
|
||||||
$koreanHighScoreList = get_high_score_list($maestro_id, $player_id, $koreanAppList);
|
|
||||||
$englishHighScoreList = get_high_score_list($maestro_id, $player_id, $englishAppList);
|
|
||||||
|
|
||||||
set_data("KoreanAppList", $koreanAppList);
|
|
||||||
set_data("EnglishAppList", $englishAppList);
|
|
||||||
set_data("KoreanActiveAppList", $koreanActiveAppList);
|
|
||||||
set_data("EnglishActiveAppList", $englishActiveAppList);
|
|
||||||
set_data("KoreanHighScoreList", $koreanHighScoreList);
|
|
||||||
set_data("EnglishHighScoreList", $englishHighScoreList);
|
|
||||||
send_result_success();
|
|
||||||
exit;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function get_typing_practice_app_list($appType) {
|
|
||||||
global $db_conn;
|
|
||||||
|
|
||||||
$query = "
|
$query = "
|
||||||
SELECT AppID, AppName, KoreanName
|
SELECT Name, Filename, LetterCount
|
||||||
FROM app
|
FROM writing
|
||||||
WHERE AppType = ? AND Status = 1
|
WHERE Writer = ?";
|
||||||
ORDER BY AppID ASC";
|
$stmt = $dbConnector->getMysqli()->prepare($query);
|
||||||
$stmt = $db_conn->prepare($query);
|
$stmt->bind_param("s", $writer);
|
||||||
$stmt->bind_param('i', $appType);
|
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->bind_result($app_id, $app_name, $korean_name);
|
$stmt->bind_result($name, $filename, $letterCount);
|
||||||
|
|
||||||
$return_array = array();
|
$resultArray = array();
|
||||||
while($stmt->fetch()) {
|
while($stmt->fetch()) {
|
||||||
$row_array['AppID'] = $app_id;
|
$rowArray = array();
|
||||||
$row_array['AppName'] = $app_name;
|
$rowArray["name"] = $name;
|
||||||
$row_array['KoreanName'] = $korean_name;
|
$rowArray["filename"] = $filename;
|
||||||
array_push($return_array, $row_array);
|
$rowArray["letterCount"] = $letterCount;
|
||||||
|
array_push($resultArray, $rowArray);
|
||||||
}
|
}
|
||||||
$stmt->close();
|
$stmt->close();
|
||||||
|
|
||||||
return $return_array;
|
return $resultArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_active_typing_practice_app_list($maestro_id, $appType) {
|
|
||||||
global $db_conn;
|
|
||||||
|
|
||||||
$query = "
|
|
||||||
SELECT A.AppID, A.AppName, A.KoreanName
|
|
||||||
FROM app AS A
|
|
||||||
INNER JOIN active_app AS AA
|
|
||||||
ON A.AppID = AA.AppID AND AA.MaestroID = ? AND A.AppType = ?
|
|
||||||
ORDER BY A.AppID ASC";
|
|
||||||
$stmt = $db_conn->prepare($query);
|
|
||||||
$stmt->bind_param('ii', $maestro_id, $appType);
|
|
||||||
$stmt->execute();
|
|
||||||
$stmt->bind_result($app_id, $app_name, $korean_name);
|
|
||||||
|
|
||||||
$return_array = array();
|
|
||||||
while($stmt->fetch()) {
|
|
||||||
$row_array['AppID'] = $app_id;
|
|
||||||
$row_array['AppName'] = $app_name;
|
|
||||||
$row_array['KoreanName'] = $korean_name;
|
|
||||||
array_push($return_array, $row_array);
|
|
||||||
}
|
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
return $return_array;
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_high_score_list($maestro_id, $player_id, $appList) {
|
|
||||||
global $db_conn;
|
|
||||||
|
|
||||||
$return_array = array();
|
|
||||||
$count = count($appList);
|
|
||||||
|
|
||||||
for($i = 0; $i < $count; $i++) {
|
|
||||||
$app_id_list = $appList[$i]['AppID'];
|
|
||||||
|
|
||||||
$query = "
|
|
||||||
SELECT MAX(AHR.HighestRecord)
|
|
||||||
FROM app AS A
|
|
||||||
INNER JOIN app_highest_record AS AHR
|
|
||||||
ON A.AppID = ? AND A.AppID = AHR.AppID AND AHR.MaestroID = ? AND AHR.PlayerID = ?
|
|
||||||
ORDER BY A.AppID ASC";
|
|
||||||
$stmt = $db_conn->prepare($query);
|
|
||||||
$stmt->bind_param('iii', $app_id_list, $maestro_id, $player_id);
|
|
||||||
$stmt->execute();
|
|
||||||
$stmt->bind_result($app_highest_record);
|
|
||||||
|
|
||||||
$returnValue = $stmt->fetch();
|
|
||||||
$stmt->close();
|
|
||||||
|
|
||||||
if($returnValue === NULL || $returnValue === FALSE)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// $row_array['maestro_id'] = $maestro_id;
|
|
||||||
// $row_array['player_id'] = $player_id;
|
|
||||||
$row_array['AppID'] = $app_id_list;
|
|
||||||
if($app_highest_record === NULL)
|
|
||||||
$row_array['AppHighestRecord'] = 0;
|
|
||||||
else
|
|
||||||
$row_array['AppHighestRecord'] = $app_highest_record;
|
|
||||||
|
|
||||||
array_push($return_array, $row_array);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $return_array;
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
+3
-1
@@ -2,6 +2,8 @@
|
|||||||
// DBConnector
|
// DBConnector
|
||||||
|
|
||||||
QUnit.test( "DBConnector", function( assert ) {
|
QUnit.test( "DBConnector", function( assert ) {
|
||||||
|
var maestroID = "choco";
|
||||||
|
var playerID = "jisangs";
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", "./../src/web/php/writing/player_list.php", true);
|
xhr.open("POST", "./../src/web/php/writing/player_list.php", true);
|
||||||
@@ -12,7 +14,7 @@ QUnit.test( "DBConnector", function( assert ) {
|
|||||||
console.log(replyJSON);
|
console.log(replyJSON);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
xhr.send();
|
xhr.send("maestroID=" + maestroID + "&playerID=" + playerID);
|
||||||
|
|
||||||
assert.equal(1, 0, "DBConnector");
|
assert.equal(1, 0, "DBConnector");
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user