-1

您好,目前我正在使用这行代码:

    if( $get_display->level== "Nursery"){
        $lbl="Kinder";
        }
    else if( $get_display->level== "Kinder"){
        $lbl="Preparatory";
        }
    else if( $get_display->level== "Preparatory"){
        $lbl="Grade 1";
        }
    else if( $get_display->level== "Grade 1"){
        $lbl="Grade 2";
        }
     ******THE else if goes on but still the same*****

所以我打算根据学生的成绩自动选择一个部分,我打算把这段代码放在上面的每个 if 语句中。像这样:

    else if( $get_display->level== "Grade 1"){
        $lbl="Grade 2";
                 if($get_display->gpa => "88"){ 
       $result = mysql_query("SELECT * FROM tbl_section where level='$lbl' 
       and section_name="A"");
       $row = mysql_fetch_array($result);
               $sname = $row['section_name'];
               }else if($get_display->gpa => "80"){ 
       $result = mysql_query("SELECT * FROM tbl_section where level='$lbl' 
       and section_name="B"");
       $row = mysql_fetch_array($result);
               $sname = $row['section_name'];
       }else if($get_display->gpa => "75"){ 
       $result = mysql_query("SELECT * FROM tbl_section where level='$lbl' 
       and section_name="C"");
       $row = mysql_fetch_array($result);
               $sname = $row['section_name'];                        
                    }
        }

$sname将在这里使用:

    <input type="text"  name="levele" value="<?php echo $sname;?>">

我现在的主要问题是,如果a 部分已满,它应该自动插入到b 部分吗?我应该怎么做?我应该在我的tbl_section添加一个字段来计算其中的学生吗?如果我会篡改我的数据库,它应该看起来如何?将不胜感激任何帮助。(请不要提到我的数据库非常受损,已经知道这只是一个简单的项目,但我稍后会实现 mysql_real_escape_string(),还没有关于 mysqli 的知识。)

编辑:a 和 b部分只是我的数据库中的字段名称,这就是tbl_section 的样子。

     section_id (int)
     section_name(vchar)(default names are A,B,C and cannot be changed)
     sy (school year) 
     adviser_id
     level

很抱歉第一次在这里展示我的数据库希望这是正确的。

4

1 回答 1

1

我只是SELECT一个section_name不完整的:

SELECT section_name, COUNT(*) 
FROM tbl_section 
WHERE level='$lbl' 
GROUP BY section_name
HAVING COUNT(*) < 80 
LIMIT 1

您还需要停止使用mysql_函数,因为它们已被弃用并且容易受到 SQL 注入的影响。

另外,我会重写上面的代码段以压缩代码,如下所示:

elseif( $get_display->level== "Grade 1" ) {
    $lbl="Grade 2";

    if( $get_display->gpa => "88" ) {
        $section_name = 'A';
    }
    elseif( $get_display->gpa => "80" ) {
        $section_name = 'B';
    }
    elseif( $get_display->gpa => "75" ) {
        $section_name = 'C';                      
    }

    $result = mysql_query("SELECT * FROM tbl_section where level='$lbl' and section_name='$section_name' LIMIT 1");
    $row = mysql_fetch_array($result);
    $sname = $row['section_name'];  
}
于 2012-09-06T14:06:42.543 回答