Add: query for record list
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
include "./../lib/send_reply_json.php";
|
||||
include "./../lib/maestro_account_info.php";
|
||||
include "./../setup/connect_db.php";
|
||||
|
||||
$maestro_id = $_POST["MaestroID"];
|
||||
$start_date = $_POST["StartDate"];
|
||||
$end_date = $_POST["EndDate"];
|
||||
$player_name_list = $_POST["PlayerNameList"];
|
||||
$app_id = $_POST["AppID"];
|
||||
|
||||
// echo "start_date : ".$start_date."\n";
|
||||
// echo "end_date : ".$end_date."\n";
|
||||
// echo "app_id : ".$app_id."\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";
|
||||
|
||||
|
||||
$replyJSON = get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement);
|
||||
if($replyJSON.length === 0) {
|
||||
send_error_message($replyJSON, "오늘의 랭킹 기록 없음");
|
||||
$db_conn->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
set_data("RecordList", $replyJSON);
|
||||
send_result_success();
|
||||
exit;
|
||||
|
||||
|
||||
|
||||
|
||||
function makeDateStatement($start_date, $end_date) {
|
||||
// return " '".$start_date."' < RecordDateTime AND RecordDateTime < '".$end_date."'";
|
||||
return " '2017-01-01' < RecordDateTime AND RecordDateTime < '".$end_date."'";
|
||||
}
|
||||
|
||||
function makeSubjectSentence($app_id) {
|
||||
if($app_id == 0)
|
||||
return "";
|
||||
|
||||
$subject_statement = "";
|
||||
if(is_subject_bundle_item($app_id)) {
|
||||
switch($app_id) {
|
||||
case 1000: // korean practice
|
||||
$subject_statement = $subject_statement." A.AppID < 9";
|
||||
|
||||
case 1001: // english practice
|
||||
$subject_statement = $subject_statement." 10 < A.AppID AND A.AppID < 19";
|
||||
|
||||
case 1002: // korean test
|
||||
$subject_statement = $subject_statement." 20 < A.AppID AND A.AppID < 31";
|
||||
|
||||
case 1003: // english test
|
||||
$subject_statement = $subject_statement." 30 < A.AppID AND A.AppID < 41";
|
||||
}
|
||||
}
|
||||
|
||||
$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."%";
|
||||
|
||||
return $player_name_statement;
|
||||
}
|
||||
|
||||
|
||||
function is_subject_bundle_item($app_id) {
|
||||
if($app_id >= 1000)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function get_player_record_list($maestro_id, $date_statement, $player_name_statement, $subject_statement) {
|
||||
global $db_conn;
|
||||
|
||||
$where_statement = $date_statement;
|
||||
if(strlen($where_statement) > 0 and strlen($player_name_statement) > 0)
|
||||
$where_statement = $where_statement." AND ";
|
||||
$where_statement = $where_statement.$player_name_statement;
|
||||
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";
|
||||
|
||||
|
||||
$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;
|
||||
";
|
||||
|
||||
// echo $query;
|
||||
// return;
|
||||
|
||||
$stmt = $db_conn->prepare($query);
|
||||
$stmt->bind_param('i', $maestro_id);
|
||||
$stmt->execute();
|
||||
$stmt->bind_result($date, $time, $player_name, $subject, $record);
|
||||
|
||||
$record_array = array();
|
||||
while($stmt->fetch()) {
|
||||
$record_date['Date'] = $date;
|
||||
$record_date['Time'] = $time;
|
||||
$record_date['PlayerName'] = $player_name;
|
||||
$record_date['Subject'] = $subject;
|
||||
$record_date['Record'] = $record;
|
||||
array_push($record_array, $record_date);
|
||||
}
|
||||
$return_array['RecordList'] = $record_array;
|
||||
|
||||
// return $return_array;
|
||||
return $record_array;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user