|
|
|
@@ -190,7 +190,7 @@ class TypingExamCollection extends DBMethodContainer
|
|
|
|
|
$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 = ?
|
|
|
|
|
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 = ? AND TER.Record >= 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) DESC;
|
|
|
|
|
";
|
|
|
|
@@ -215,7 +215,7 @@ class TypingExamCollection extends DBMethodContainer
|
|
|
|
|
$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 = ?
|
|
|
|
|
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 = ? AND TER.Record >= 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) DESC;
|
|
|
|
|
";
|
|
|
|
@@ -240,7 +240,7 @@ class TypingExamCollection extends DBMethodContainer
|
|
|
|
|
$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 = ?
|
|
|
|
|
WHERE TER.MaestroID = ? AND TER.playerID = U.playerID AND YEAR(TER.RecordDateTime) = YEAR(?) AND MONTH(TER.RecordDateTime) = MONTH(?) AND TER.WritingID = ? AND TER.Record >= 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) DESC;
|
|
|
|
|
";
|
|
|
|
@@ -260,5 +260,80 @@ class TypingExamCollection extends DBMethodContainer
|
|
|
|
|
|
|
|
|
|
return $rankingRecordArray;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getRankingMinusRecordHour($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 = ? AND TER.Record < 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) ASC;
|
|
|
|
|
";
|
|
|
|
|
$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 getRankingMinusRecordDay($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 = ? AND TER.Record < 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) ASC;
|
|
|
|
|
";
|
|
|
|
|
$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 getRankingMinusRecordMonth($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 = ? AND TER.Record < 0
|
|
|
|
|
GROUP BY TER.playerID
|
|
|
|
|
ORDER BY MAX(TER.Record) ASC;
|
|
|
|
|
";
|
|
|
|
|
$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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
?>
|