每当我请求学生学期成绩(课程成绩)时,我的代码的这一部分用于为学生成绩打分。但是,只有一个特定的分数会被授予所有分数,大多数情况下,上传到学生数据库的最后一个结果会被授予全部分数。当我在等级中添加周期时,即
$grade .= 'A';
$grade .= 'B';
$grade .= 'C';
$grade .= 'D';
$grade .= 'E';
在每列中重复所有等级。因此,假设一个特定的学生在一个学期内学习了6门课程,并且总共有
3 A's , 2 B's , 1 C
在六个课程中,每一行都重复6个年级。
我很乐意展示代码的其他部分。谢谢你的时间和耐心。
while ($row8 = mysql_fetch_assoc ($query8)) {
if ($row8['score'] >= 70) {
$grade = 'A';
}
elseif ($row8['score'] >= 60) {
$grade = 'B';
}elseif ($row8['score'] >= 50) {
$grade = 'C';
}elseif ($row8['score'] >= 45) {
$grade = 'D';
}elseif($row8['score'] >= 40) {
$grade = 'E';
}else{
$grade = 'F';
}
}
这是查询(query8),用于查找学生学期课程的分数。
$query8 = mysql_query("SELECT m. score
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
需要将结果存储在数组中。。。当使用任何循环逻辑时。。。喜欢这个吗
$arr = array();
while ($row8 = mysql_fetch_assoc ($query8)) {
if ($row8['score'] >= 70) {
$grade = 'A';
}
elseif ($row8['score'] >= 60) {
$grade = 'B';
}elseif ($row8['score'] >= 50) {
$grade = 'C';
}elseif ($row8['score'] >= 45) {
$grade = 'D';
}elseif($row8['score'] >= 40) {
$grade = 'E';
}else{
$grade = 'F';
}
$arr[$row8['score']] = $grade;
}
现在从$arr你可以检索结果你得到什么。。。感谢
除了将$grade设置为A/B/C/D/E/F之外,您永远不会在循环中使用它。因此,无论最后一个分数的值是多少,都将决定$grade的最终值。你在哪里将$grade的值应用于其他东西?
在所有if语句之后,循环的最后一行看起来应该是这样的:
do_something_with_grade($grade);