这是我的问题。我上传了一个包含两列(学生编号和分数)的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;
}
}
答案 0 :(得分:0)
一些问题:
$grade
变量会在循环中被覆盖,因此您最后只会得到最后一个值。由于您的行还包含学生编号,您可以执行以下操作:$grade[$row4['number']] = 'A';
将特定成绩与特定学生编号相关联。请注意,您应该在循环之前设置数组:$grade = array();
A
,B
等是常数。它应该是'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
);
}