Php 我的评分系统有问题

Php 我的评分系统有问题,php,mysql,Php,Mysql,我的代码的这一部分用于每当我要求学生的学期成绩(课程成绩)时,给学生的分数打分。但是,只有一个特定的分数会被授予所有分数,大多数情况下,上传到学生数据库的最后一个结果会被授予所有分数。当我在成绩上加上句号时,即 $grade .= 'A'; $grade .= 'B'; $grade .= 'C'; $grade .= 'D'; $grade .= 'E'; 在每一列中重复所有等级。假设一个学生在一个学期里修了6门课,总共 3 A's , 2 B's , 1 C 在

我的代码的这一部分用于每当我要求学生的学期成绩(课程成绩)时,给学生的分数打分。但是,只有一个特定的分数会被授予所有分数,大多数情况下,上传到学生数据库的最后一个结果会被授予所有分数。当我在成绩上加上句号时,即

  $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';
            }   
            }   
这是查询(查询8),查询学生学期课程的分数

        $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的最终值。你在哪里把$grade的价值应用到其他东西上

在所有if语句之后,循环的最后一行应该是这样的:

 do_something_with_grade($grade);

什么学校提供了
E
等级?
$query8
对于了解发生了什么绝对重要。听起来你的
JOIN
正在自信地进行
交叉连接,它返回所有组合。@guvante。。。我应该提供代码的其他哪些部分。。。。亚当,我的学校有。尽你所能展示。所有这些都很好。@jay我已经更新了问题,并添加了需要数据库分数的查询。我添加了数组,但仍然得到了相同的答案。谢谢,逻辑是完美的。。。数据检索可能有问题。。。检查。。非常感谢。我用来调用数据的查询会有问题吗?谢谢