diff --git a/src/web/module/maestro_section_record.html b/src/web/module/maestro_section_record.html
index ee7bad0..3dbf3f8 100644
--- a/src/web/module/maestro_section_record.html
+++ b/src/web/module/maestro_section_record.html
@@ -31,23 +31,25 @@ function initDatePicker() {
language: 'kr'
});
- var today = new Date();
- var yyyy = today.getFullYear();
- var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
- var dd = String(today.getDate()).padStart(2, '0');
+ setDatePickersForMonths(3);
- $('#start_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd);
- $('#end_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd);
+ // var today = new Date();
+ // var yyyy = today.getFullYear();
+ // var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
+ // var dd = String(today.getDate()).padStart(2, '0');
+
+ // $('#start_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd);
+ // $('#end_datepicker').datepicker('update', yyyy + "-" + mm + "-" + dd);
}
-function setDatePickers1Week() {
+function setDatePickersForWeeks(weeks) {
var today = new Date();
var tyyyy = today.getFullYear();
var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var tdd = String(today.getDate()).padStart(2, '0');
var startDay = new Date();
- startDay.setDate(startDay.getDate() - 7);
+ startDay.setDate(startDay.getDate() - 7 * weeks);
var syyyy = startDay.getFullYear();
var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0!
var sdd = String(startDay.getDate()).padStart(2, '0');
@@ -56,14 +58,14 @@ function setDatePickers1Week() {
$('#end_datepicker').datepicker('update', tyyyy + "-" + tmm + "-" + tdd);
}
-function setDatePickers1Month() {
+function setDatePickersForMonths(months) {
var today = new Date();
var tyyyy = today.getFullYear();
var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var tdd = String(today.getDate()).padStart(2, '0');
var startDay = new Date();
- startDay.setMonth(startDay.getMonth() - 1);
+ startDay.setMonth(startDay.getMonth() - months);
var syyyy = startDay.getFullYear();
var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0!
var sdd = String(startDay.getDate()).padStart(2, '0');
@@ -72,14 +74,14 @@ function setDatePickers1Month() {
$('#end_datepicker').datepicker('update', tyyyy + "-" + tmm + "-" + tdd);
}
-function setDatePickers1Year() {
+function setDatePickersForYears(years) {
var today = new Date();
var tyyyy = today.getFullYear();
var tmm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var tdd = String(today.getDate()).padStart(2, '0');
var startDay = new Date();
- startDay.setFullYear(startDay.getFullYear() - 1);
+ startDay.setFullYear(startDay.getFullYear() - years);
var syyyy = startDay.getFullYear();
var smm = String(startDay.getMonth() + 1).padStart(2, '0'); //January is 0!
var sdd = String(startDay.getDate()).padStart(2, '0');
@@ -233,12 +235,24 @@ function addSubjectBundleItem(subjectListID, appID, appName) {
function requestPlayerRecordList() {
+ getPlayerRecordList(50);
+
+ $("#search_all").removeClass("disabled");
+}
+
+function requestPlayerRecordListAll() {
+ getPlayerRecordList(0);
+}
+
+function getPlayerRecordList(limitCount) {
var startDate = $("#start_date").val();
var endDate = $("#end_date").val();
// console.log(startDate);
// console.log(endDate);
- var playerNameList = $("#player_name").val();
+ var playerNameList = $("#player_name_list").val();
+ // console.log("player name list");
+ // console.log($("player_name_list"));
// console.log(playerNameList);
var appID = $(":radio[name='subject_group']:checked").val();
@@ -249,10 +263,11 @@ function requestPlayerRecordList() {
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
"./../server/record/request_player_record_list.php",
"MaestroID=" + maestroID + "&StartDate=" + startDate + "&EndDate=" + endDate
- + "&PlayerNameList=" + playerNameList + "&AppID=" + appID,
+ + "&PlayerNameList=" + playerNameList + "&AppID=" + appID + "&LimitCount=" + limitCount,
(function(jsonData) {
// console.log(jsonData);
+ showRecordCount(jsonData);
makeRecordTableContent(jsonData["RecordList"]);
}),
@@ -264,6 +279,16 @@ function requestPlayerRecordList() {
}
+function showRecordCount(jsonData) {
+ $("#record_count").empty();
+
+ var count = jsonData["RecordList"].length;
+ $("#record_count").append(
+ '표시 : ' + count + '개 / 총 : ' + count + '개'
+ );
+
+}
+
function makeRecordTableContent(recordList) {
$("#record_table_content").empty();
@@ -272,23 +297,17 @@ function makeRecordTableContent(recordList) {
return;
}
- console.log(recordList);
+ // console.log(recordList);
for(var i = 0; i < recordList.length; i++) {
- var recordData = recordList[i];
- addRecordListItem(
- recordData.Date,
- recordData.Time,
- recordData.PlayerName,
- recordData.Subject,
- recordData.Record
- );
+ var record = recordList[i];
+ addRecordListItem(record.Date, record.Time, record.PlayerName, record.Subject, record.Record);
}
}
function showNoResultContent() {
$("#record_table_content").append('\
\
- | 데이터가 없습니다. | \
+ 데이터가 없습니다. | \
\
');
}
@@ -356,9 +375,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
-
-
-
+
+
+
@@ -374,7 +393,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
?
-
+
@@ -412,7 +431,7 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
-
+
@@ -427,8 +446,9 @@ function addRecordListItem($date, $time, $name, $subject, $record) {
?
-
-
+
+ 표시 : 0개 / 총 : 0개
+
diff --git a/src/web/server/record/request_player_record_list.php b/src/web/server/record/request_player_record_list.php
index abf6b81..9731f25 100644
--- a/src/web/server/record/request_player_record_list.php
+++ b/src/web/server/record/request_player_record_list.php
@@ -10,31 +10,34 @@ $start_date = $_POST["StartDate"];
$end_date = $_POST["EndDate"];
$player_name_list = $_POST["PlayerNameList"];
$app_id = $_POST["AppID"];
+$limit_count = $_POST["LimitCount"];
// echo "start_date : ".$start_date."\n";
// echo "end_date : ".$end_date."\n";
+// echo "player_name_list : ".$player_name_list."\n";
// echo "app_id : ".$app_id."\n";
+// echo "limit_count : ".$limit_count."\n";
// echo "\n";
-$replyJSON = null;
-
$date_statement = makeDateStatement($start_date, $end_date);
$player_name_statement = makePlayerNameStatement($player_name_list);
$subject_statement = makeSubjectSentence($app_id);
-
// echo "maestro : ".$maestro_id."\n";
// echo "date : ".$date_statement."\n";
// echo "player_name : ".$player_name_statement."\n";
// echo "subject : ".$subject_statement."\n";
+$where_statement = make_where_statement($date_statement, $player_name_statement, $subject_statement);
-
-$replyJSON = get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement);
+$recordCount = get_player_record_count($maestro_id, $where_statement, $limit_count);
+$recordTotalCount = get_player_record_total_count($maestro_id, $where_statement);
+$replyJSON = get_player_record_list($maestro_id, $where_statement, $limit_count);
if($replyJSON.length === 0) {
send_error_message($replyJSON, "오늘의 랭킹 기록 없음");
$db_conn->close();
exit;
}
+set_data("RecordCount", $recordCount);
set_data("RecordList", $replyJSON);
send_result_success();
exit;
@@ -55,27 +58,32 @@ function makeSubjectSentence($app_id) {
if(is_subject_bundle_item($app_id)) {
switch($app_id) {
case 1000: // korean practice
- $subject_statement = $subject_statement." A.AppID < 9";
+ $subject_statement = $subject_statement."A.AppID < 9";
+ break;
case 1001: // english practice
- $subject_statement = $subject_statement." 10 < A.AppID AND A.AppID < 19";
+ $subject_statement = $subject_statement."10 < A.AppID AND A.AppID < 19";
+ break;
case 1002: // korean test
- $subject_statement = $subject_statement." 20 < A.AppID AND A.AppID < 31";
+ $subject_statement = $subject_statement."20 < A.AppID AND A.AppID < 31";
+ break;
case 1003: // english test
- $subject_statement = $subject_statement." 30 < A.AppID AND A.AppID < 41";
+ $subject_statement = $subject_statement."30 < A.AppID AND A.AppID < 41";
+ break;
}
+ } else {
+ $subject_statement = $subject_statement."A.AppID = ".$app_id;
}
- $subject_statement = $subject_statement." A.AppID = ".$app_id;
return $subject_statement." AND BR.AppID = A.AppID";
}
function makePlayerNameStatement($player_name_list) {
$player_name_statement = "BR.PlayerID = P.PlayerID";
- if($player_name_list.length > 0)
- $player_name_statement = $player_name_statement." AND P.Name LIKE %".$player_name_list."%";
+ if(strlen($player_name_list) > 0)
+ $player_name_statement = $player_name_statement." AND P.Name LIKE '%".$player_name_list."%'";
return $player_name_statement;
}
@@ -88,28 +96,85 @@ function is_subject_bundle_item($app_id) {
return false;
}
-function get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement) {
- global $db_conn;
-
+function make_where_statement($date_statement, $player_name_statement, $subject_statement) {
+ // add date condition
$where_statement = $date_statement;
if(strlen($where_statement) > 0 and strlen($player_name_statement) > 0)
$where_statement = $where_statement." AND ";
+
+ // add player name condition
$where_statement = $where_statement.$player_name_statement;
+
+ // add subject condition
if(strlen($where_statement) > 0 and strlen($subject_statement) > 0)
$where_statement = $where_statement." AND ";
$where_statement = $where_statement.$subject_statement;
// echo $where_statement."\n\n";
+ return $where_statement;
+}
+function get_player_record_count($maestro_id, $where_statement, $limit_count) {
+ global $db_conn;
+
+ $query = "
+ SELECT COUNT(*)
+ FROM best_record BR, player P, App A
+ WHERE BR.MaestroID = ? AND ".$where_statement."
+ ";
+
+ if($limit_count > 0)
+ $query = $query." LIMIT ".$limit_count;
+
+ // echo $query;
+ // return;
+
+ $stmt = $db_conn->prepare($query);
+ $stmt->bind_param("i", $maestro_id);
+ $stmt->execute();
+ $stmt->bind_result($record_count);
+ $stmt->fetch();
+ $stmt->close();
+
+ return $record_count;
+}
+
+function get_player_record_total_count($maestro_id, $where_statement) {
+ global $db_conn;
+
+ $query = "
+ SELECT COUNT(*)
+ FROM best_record BR, player P, App A
+ WHERE BR.MaestroID = ? AND ".$where_statement."
+ ";
+
+ // echo $query;
+ // return;
+
+ $stmt = $db_conn->prepare($query);
+ $stmt->bind_param("i", $maestro_id);
+ $stmt->execute();
+ $stmt->bind_result($record_count);
+ $stmt->fetch();
+ $stmt->close();
+
+ return $record_count;
+}
+
+function get_player_record_list($maestro_id, $where_statement, $limit_count) {
+ global $db_conn;
$query = "
SELECT DATE(BR.RecordDateTime) AS Date, TIME(BR.RecordDateTime) AS Time,
P.Name AS Name, A.KoreanName AS Subject, BR.BestRecord AS Record
FROM best_record BR, player P, App A
WHERE BR.MaestroID = ? AND ".$where_statement."
- ORDER BY BR.RecordDateTime ASC;
+ ORDER BY BR.RecordDateTime ASC
";
+ if($limit_count > 0)
+ $query = $query." LIMIT ".$limit_count;
+
// echo $query;
// return;
@@ -127,7 +192,7 @@ function get_player_record_list($maestro_id, $date_statement, $player_name_state
$record_date['Record'] = $record;
array_push($record_array, $record_date);
}
- $return_array['RecordList'] = $record_array;
+ // $return_array['RecordList'] = $record_array;
// return $return_array;
return $record_array;