从分数值返回默认分数

时间:2012-03-13 21:02:01

标签: php mysql html loops

这是我的问题。我上传了一个包含两列(学生编号和分数)的csv文件。但是当我从数据中形成一个HTML表格时,我希望根据上传的分数显示一个等级的列...此外,所有得分> 40的课程都应该放入另一个表格中。下面是我正在尝试工作的循环,但它并没有让我靠近它。

感谢您的帮助。我最欣赏它。感谢

while ($row4 = mysql_fetch_assoc($query4)) {
    if ($row4['score'] >= 70) {
        $grade = A;
    } 
    elseif ($row4['score'] >= 60) {
        $grade = B;
    }
    elseif ($row4['score'] >= 50) {
        $grade = C;
    }
    elseif ($row4['score'] >= 45) {
        $grade = D;
    }
    elseif($row4['score'] >= 40) {
        $grade = E;
    }
    elseif($row4['score'] >= 40) {
        $grade = F;
    }else {
        $grade = AR;
    }
}

2 个答案:

答案 0 :(得分:0)

一些问题:

  • 您的$grade变量会在循环中被覆盖,因此您最后只会得到最后一个值。由于您的行还包含学生编号,您可以执行以下操作:$grade[$row4['number']] = 'A';将特定成绩与特定学生编号相关联。请注意,您应该在循环之前设置数组:$grade = array();
  • 您的作业有误,除非AB等是常数。它应该是'A'而不是A等等。所以:$grade[$row4['number']] = 'C';等等。

答案 1 :(得分:0)

如果我理解正确,以下内容应该可以满足您的需求。我假设您的课程ID和学生ID在数据库行中,但如果没有,则需要更新。

<?php

define('GRADE_A_MIN', 70);
define('GRADE_B_MIN', 60);
define('GRADE_C_MIN', 50);
define('GRADE_D_MIN', 45);
define('GRADE_E_MIN', 40);
define('GRADE_F_MIN', 35);

$table_one_values = array(); // Used to create table for students with scores 40+
$table_two_values = array();


while ($row4 = mysql_fetch_assoc($query4)) {
    $score = $row4['score'];
    $destination_table = 'two';

    if ( $score >= GRADE_A_MIN ) {
        $grade = 'A';
        $destination_table = 'one';

    } elseif ( $score >= GRADE_B_MIN ) {
        $grade = 'B';
        $destination_table = 'one';

    } elseif ( $score >= GRADE_C_MIN ) {
        $grade = 'C';
        $destination_table = 'one';

    } elseif ( $score >= GRADE_D_MIN ) {
        $grade = 'D';
        $destination_table = 'one';

    } elseif ( $score >= GRADE_E_MIN ) {
        $grade = 'E';
        $destination_table = 'one';

    } elseif ( $score >= GRADE_F_MIN ) {
        $grade = 'F';

    } else {
        $grade = 'AR';

    }

    $table = 'table_'.$destination_table.'_values';
    $$table[] = array(
        'course_id'     => $row4['course_id'],
        'student_id'    => $row4['student_id'],
        'score'         => $score,
        'grade'         => $grade
    );
}