Add: get_typing_exam_ranking_records

This commit is contained in:
2019-07-18 11:55:49 +09:00
parent 1fe0b08e9f
commit 1f6d91f301
7 changed files with 346 additions and 33 deletions
+76
View File
@@ -181,8 +181,84 @@ class TypingExamCollection extends DBMethodContainer
$historyRecord['AppName'] = "TypingExam";
array_push($historyRecordArray, $historyRecord);
}
$stmt->close();
return $historyRecordArray;
}
function getRankingRecordHour($maestroID, $writingID, $date, $time) {
$query = "
SELECT TER.playerID As PlayerID, U.Name AS Name, MAX(TER.Record) AS HighScore
FROM typing_exam_record TER, player U
WHERE TER.MaestroID = ? AND TER.playerID = U.playerID AND YEAR(TER.RecordDateTime) = YEAR(?) AND MONTH(TER.RecordDateTime) = MONTH(?) AND DAYOFMONTH(TER.RecordDateTime) = DAYOFMONTH(?) AND HOUR(TER.RecordDateTime) = HOUR(?) AND TER.WritingID = ?
GROUP BY TER.playerID
ORDER BY MAX(TER.Record) DESC;
";
$stmt = $this->mysqli->prepare($query);
$stmt->bind_param('issssi', $maestroID, $date, $date, $date, $time, $writingID);
$stmt->execute();
$stmt->bind_result($playerID, $name, $highScore);
$rankingRecordArray = array();
while($stmt->fetch()) {
$rankingRecord['PlayerID'] = $playerID;
$rankingRecord['Name'] = $name;
$rankingRecord['HighScore'] = $highScore;
array_push($rankingRecordArray, $rankingRecord);
}
$stmt->close();
return $rankingRecordArray;
}
function getRankingRecordDay($maestroID, $writingID, $date) {
$query = "
SELECT TER.playerID As PlayerID, U.Name AS Name, MAX(TER.Record) AS HighScore
FROM typing_exam_record TER, player U
WHERE TER.MaestroID = ? AND TER.playerID = U.playerID AND YEAR(TER.RecordDateTime) = YEAR(?) AND MONTH(TER.RecordDateTime) = MONTH(?) AND DAYOFMONTH(TER.RecordDateTime) = DAYOFMONTH(?) AND TER.WritingID = ?
GROUP BY TER.playerID
ORDER BY MAX(TER.Record) DESC;
";
$stmt = $this->mysqli->prepare($query);
$stmt->bind_param('isssi', $maestroID, $date, $date, $date, $writingID);
$stmt->execute();
$stmt->bind_result($playerID, $name, $highScore);
$rankingRecordArray = array();
while($stmt->fetch()) {
$rankingRecord['PlayerID'] = $playerID;
$rankingRecord['Name'] = $name;
$rankingRecord['HighScore'] = $highScore;
array_push($rankingRecordArray, $rankingRecord);
}
$stmt->close();
return $rankingRecordArray;
}
function getRankingRecordMonth($maestroID, $writingID, $date) {
$query = "
SELECT TER.playerID As PlayerID, U.Name AS Name, MAX(TER.Record) AS HighScore
FROM typing_exam_record TER, player U
WHERE TER.MaestroID = ? AND TER.playerID = U.playerID AND YEAR(TER.RecordDateTime) = YEAR(?) AND MONTH(TER.RecordDateTime) = MONTH(?) AND TER.WritingID = ?
GROUP BY TER.playerID
ORDER BY MAX(TER.Record) DESC;
";
$stmt = $this->mysqli->prepare($query);
$stmt->bind_param('issi', $maestroID, $date, $date, $writingID);
$stmt->execute();
$stmt->bind_result($playerID, $name, $highScore);
$rankingRecordArray = array();
while($stmt->fetch()) {
$rankingRecord['PlayerID'] = $playerID;
$rankingRecord['Name'] = $name;
$rankingRecord['HighScore'] = $highScore;
array_push($rankingRecordArray, $rankingRecord);
}
$stmt->close();
return $rankingRecordArray;
}
}
?>