这部分代码用于在我申请学生学期成绩(课程分数)时将成绩授予学生分数。但是,只有特定等级被授予所有分数,大多数时候上传到学生数据库的最后结果被授予所有分数。当我把时期添加到等级,即
$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());
答案 0 :(得分:0)
需要将结果存储在数组中......当使用任何循环逻辑时......就像这样
$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你可以检索你得到的结果...... 感谢
答案 1 :(得分:0)
除了将A / B / C / D / E / F设置为A / B / C / D / E / F外,您永远不会在循环中执行任何$ grade等级的操作。因此,无论最后得分的价值如何,都将决定$ grade的最终价值。你在哪里将$ grade的价值应用于其他东西?
在所有if语句之后,看起来像循环的最后一行应该是这样的:
do_something_with_grade($grade);