我試圖讓一個學生的排名達到一百級,我想能夠顯示學生的排名。如何使用PHP和MySQL顯示百名學生中的學生排名?
我試圖通過年級和年級得分的學生的排名。例如,如果student 1
具有2個A +等級並且總共10個點並且student 2
具有3個B-等級並且總共10個點student 1
將排列更高。我想知道如何使用PHP & MySQL來做到這一點?
這是我到目前爲止的PHP代碼&。
$gp = array();
$dbc = mysqli_query($mysqli,"SELECT grades.*, homework_grades.*, users_homework.*
FROM grades
LEFT JOIN homework_grades ON grades.id = homework_grades.grade_id
LEFT JOIN users_homework ON homework_grades.users_homework_id = users_homework.id
WHERE users_homework.user_id = '$user_id'
AND users_homework.grade_average = 'A+'");
if (!$dbc) {
print mysqli_error($mysqli);
} else {
while($row = mysqli_fetch_array($dbc)){
$gp[] = $row['grade_points'];
}
}
echo array_sum($gp);
這是我的MySQL表。
CREATE TABLE homework_grades (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
grade_id INT UNSIGNED NOT NULL,
users_homework_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE grades (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
letter_grade VARCHAR NOT NULL,
grade_points FLOAT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
CREATE TABLE users_homework (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
homework_content LONGTEXT NOT NULL,
grade_average VARCHAR DEFAULT NULL,
PRIMARY KEY (id)
);
你可以做的是看看有多少年級 - 分數的數量 - 每個學生都有,並按此Asc然後按實際分數排序。例如:student1有2個A +而student2有3B-因此他們都有10個點。但是,學生只有2個等級給了他10分,所以這意味着學生應該有更高的等級。 – 2010-06-18 22:07:49