【问题标题】:How to jump out of a Loop and then continue如何跳出循环然后继续
【发布时间】:2012-04-03 02:37:41
【问题描述】:

我需要你的帮助。我在 course_unit 的列上执行 SUM(),但我希望它省略某个条件,然后继续循环。示例:应该从循环中省略 gradeAR 的课程,然后继续。

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

Query4用于生成一些course_unitScore

  $query4 = mysql_query("SELECT  c.course_unit, 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());

Query3用于course_units

的求和
 $query3 = mysql_query("SELECT  SUM(c.
 course_unit) AS 'TOTAL'
 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());

分数方面的成绩

    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';
            }elseif($row8['score'] >= 0) &&
            ($row8['score'] < 40){
               $grade = 'F';
            }else{
               $grade = 'AR';
            }   
     }   

成绩点的计算

      $grade_point = 0;
      while ($row4 = mysql_fetch_assoc($query4)) {
         if ($row4['score'] >= 70) {
            $score = 5;
          }
          elseif ($row4['score'] >= 60) {
             $score = 4;
          }elseif ($row4['score'] >= 50) {
             $score = 3;
          }elseif ($row4['score'] >= 45) {
             $score = 2;
          }elseif($row4['score'] >= 40) {
             $score = 1;
          }else{
             $score = 0;
          } 

          $grade_point += $score * $row4['course_unit'];

      }

问题更新

如果循环中断

$grade == 'AR'

具有该 grade 的课程是否按 course_unit 计算 总和()?

【问题讨论】:

  • 使用continue 跳转到循环的下一次迭代,使用break 完全退出循环。

标签: php mysql loops conditional-statements


【解决方案1】:

这个怎么样:

while( <loop condition> )
{
    if( $grade == "AR" )
    {
        continue;
    }
    <other statements>
}

【讨论】:

    【解决方案2】:

    这个条件可以包含在你的 SQL 中吗?

    否则,

    while (something)
    {
     if (!omitCondition)
      DoTheThing
    }
    

    【讨论】:

    • 先生,您说的是哪种情况?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2023-03-19
    • 2014-06-28
    • 2011-10-16
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多