- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取某个学生在一百个类(class)中的排名,我希望能够显示学生的排名。
我正在尝试根据成绩和绩点获取学生的排名。例如,如果学生 1
有 2 项 A+ 成绩,总分 10 分,而学生 2
有 3 项 B- 成绩,总分 10 分学生 1
code> 排名会更高。我想知道如何使用 PHP 和 MySQL 来做到这一点?
这是我迄今为止拥有的 PHP 和 MySQL 代码。
$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)
);
最佳答案
已更新
您需要一个聚合。执行 SUM() 和 COUNT()。 COUNT 会告诉您作业的数量,sum 会告诉您总成绩分。 GROUP BY user_id 以获取每个学生的信息。
$gp = array();
$dbc = mysqli_query($mysqli,"SELECT SUM(grade_points) as grade_points, user_id, count(*) as num_assignments
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
GROUP BY user_id
ORDER BY grade_points DESC , num_assignments ASC'");
if (!$dbc) {
print mysqli_error($mysqli);
} else {
$i=1;
while($row = mysqli_fetch_array($dbc)){
$user[$row['user_id']] = $i++;
$rank[] = $row['user_id'];
$gp[] = $row['grade_points'];
}
}
// the rank of user 10 is
echo "the rank of user_id 10 is {$user[10]}";
echo "the rank of all users are: " ;
print_r($rank);
这将累加绩点,并计算作业数量。排序将确保从 3 项作业中获得 10 分的学生的排名高于从 4 项作业中获得 10 分的学生。
查看 COUNT SUM 和 GROUP BY 聚合。
关于php - 如何使用 PHP 和 MySQL 显示学生在一百名学生中的排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073197/
在parser.h中: typedef enum _SEX {MALE = 'M', FEMALE = 'F', OTHER = 'O'} SEX; struct course { char gra
共有三个实体: School, teacher and student 有一些规则: 一个学生只能属于一位老师 一名学生只能属于一所学校 一名教师可以属于一所或多所学校 这意味着我的表中有这些关系:
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我正在构建一个涉及学生和顾问的 Web 应用程序。学生将选择他的独立学习,顾问将对其进行监督。我正在努力为我的程序找到正确的关系。 基本上我的应用程序中的参与者是。 a Student can sel
支持Python的IDE有IPython、Aptana Studio(在Eclipse的基础上加插件集改的)、PyCharm(由 JetBrains 打造的一款 Python IDE,支持 macO
我对 sql 和 Stack Overflow 非常陌生。我希望有人可以帮助我解决这个问题。我的查询应该显示销售额超过 200,000 美元的类别的总销售额和已售商品总数。我已经研究这个查询一个小时了
public class Menu extends Activity { /** Called when the activity is first created. */ public
当我在 R 中运行学生 t-分布时,我得到以下结果: > pt(1.849, 2, lower.tail=FALSE) [1] 0.1028493 当我运行 Apache Commons Math 库
我的机器人实验室正在寻找程序员来从事我们目前的一些项目。 我们确定了要求(主要是 C++ 和 openGL 和 3D 经验),但由于明显的资金限制,我们无力聘请优秀的开发人员。相反,我们将满足于有才华
我正在努力完成一个使用替换密码来编码和解码 txt 文件的程序。经过相当多的工作,我的程序几乎完成了。该程序首先询问用户是否要对文件进行编码或解码。回答这个问题后,程序会提示用户输入正在输入的文件的名
我是一个刚开始编程的菜鸟,我想知道为什么我会收到一条错误消息:非静态数据成员“Lavirint::n”的使用无效? class Lavirint{ private: int n, m;
该项目的目标是创建四个类:Student 类、GradStudent 类、Manager 类和 GUI 类。 GUI 中有两个单选按钮:一个用于学生,一个用于研究生。根据选择的对象,Manager 类
我正在尝试向学生、教师和家长 Activity 实现抽屉导航 Activity ,但它不起作用,请指导我如何在登录后向不同角色的用户添加抽屉导航。 最佳答案 您需要在 中自定义布局像这样:
我是 JS 的新手,甚至是 Jquery 和 fullcalendar 的新手。我创建了一个单独在页面上运行良好的日历。我正在尝试将此代码与另一个页面结合使用,但我无法让日历呈现。 首先我包含一些文件
我正在开发一个简单的 Linux Shell,它可以 fork() 并调用 execvp(),但我最近添加了不需要 fork() 的“内置函数”。 这是执行处理: if (strcmp(cmd
我在使用分配给我的这个初学者 Java 程序时遇到了麻烦,我是 Java 的新手,而且我在使用这个特定程序时遇到了很多麻烦。这些是说明: Your program should prompt user
在下面的代码块中,有几个(故意的)错误,我的任务是找到它们并解释这些错误是否会导致编译代码时出现问题,或者至少会导致一些逻辑问题。 public class Person { private St
我想加载一个文件,将其内容拆分为数组,然后将类应用到内容。 class Student def initialize( name, grade ) @name = name
我有 3 个实体:导师、学生、类(class) 导师教授许多类(class) 学生可以被分配到由多名导师教授的许多类(class) 导师和学生需要能够登录系统 我想使用下表来表示此设计: users
我想弄清楚这里的填充是否可调 这是 HTML: {block:IfHeaderImage} {/block:IfHeaderImage} {block:IfNot
我是一名优秀的程序员,十分优秀!