Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从分数值返回默认分数_Php_Mysql_Html_Loops - Fatal编程技术网

Php 从分数值返回默认分数

Php 从分数值返回默认分数,php,mysql,html,loops,Php,Mysql,Html,Loops,这是我的问题。我上传了一个包含两列(学生编号和分数)的csv文件。但是,当我从数据形成一个HTML表时,我希望有一个列根据上传的分数显示等级。。。此外,所有得分>40的课程都应放在另一个表中。下面是我试图使之工作的循环,但它并没有让我接近它 谢谢你的帮助。我非常感激。谢谢 while ($row4 = mysql_fetch_assoc($query4)) { if ($row4['score'] >= 70) { $grade = A; } el

这是我的问题。我上传了一个包含两列(学生编号和分数)的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;
    }
}
一些问题:

  • 您的
    $grade
    变量在循环中被覆盖,因此您将只在最后有最后一个值。由于您的行也包含一个学生编号,您可以执行如下操作:
    $grade[$row4['number']]='a'
    将该特定年级链接到特定学生编号。请注意,您将在循环之前设置数组:
    $grade=array()
  • 除非
    A
    B
    等为常量,否则您的作业是错误的。它可能应该是
    'A'
    ,而不是
    A
    ,等等。因此:
    $grade[$row4['number']]='C',等等

如果我理解正确,以下内容应满足您的要求。我假设您的课程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
    );
}

请提供一个CSV文件和一个SQL查询。请问“提供CSV文件”是什么意思?
但这并不能让我接近它。你能详细说明一下吗。你有错误吗?@vascowhite。。。。不,当我在查询之后输入此代码时,我没有收到任何错误。@dotman14除非您的所有分数都定义为常量,否则您应该会收到大量警告。注意:学生编号只是一个ID,与分数中的分数分配无关。谢谢。@Dotman 14您需要显示其余代码。
$query4
返回多少行,每个学生一行?www.pastebin.com/VhwMXyym。。这是我完整代码的粘贴。我正在使用Query8获取我成绩的数据。因此$row8等。我可以添加另一列的成绩,但不知道如何把标题,它被添加到右边。此外,当我更新分数时,分数不会改变。它仍然保留初始分数的分数