Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 mysql中的if和else if_Php_Mysql - Fatal编程技术网

Php mysql中的if和else if

Php mysql中的if和else if,php,mysql,Php,Mysql,我正在做一个关于table coursereg1sttbl的结果项目。讲师只需输入分数,然后根据总分更新分数。有了if语句,我就可以让它工作了。这段代码在php中运行良好。我多么想写一个作业,在没有php的情况下在sql级别完成这项工作。所以如果分数是0-49,分数将是F,以此类推。如何使用sql进行此操作。我的主要目标是根据条件更新表coursereg1sttbl SET grade=成绩值 <?php $sql = "SELECT * from coursereg1sttbl WHE

我正在做一个关于table coursereg1sttbl的结果项目。讲师只需输入分数,然后根据总分更新分数。有了if语句,我就可以让它工作了。这段代码在php中运行良好。我多么想写一个作业,在没有php的情况下在sql级别完成这项工作。所以如果分数是0-49,分数将是F,以此类推。如何使用sql进行此操作。我的主要目标是根据条件更新表coursereg1sttbl SET grade=成绩值

<?php $sql = "SELECT * from  coursereg1sttbl WHERE matricno = '$matno'  AND registratioin_status ='1' ";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{       
  //  Pharmacy Grading
  if($dptcode == 119 ){

      if($result->total_score >= 0 && $result->total_score <=49) $grade1='F';
      elseif($result->total_score >=50 && $result->total_score <=54) $grade1='E';
      elseif($result->total_score >=55 && $result->total_score <=59) $grade1='D';
      elseif($result->total_score>=60 && $result->total_score <=64) $grade1='C';
      elseif($result->total_score >=65 && $result->total_score <=69) $grade1='B';
      elseif($result->total_score >=70 && $result->total_score <=100) $grade1='A';
      else
      {
         $grade1 ='NA'; 
      }
  }   ?>  ```
```

使用SQL完成此任务的一个好方法(有些人称之为直方图bucketing)是使用
CASE当。。。然后…
查询中的表达式。如果。。。否则,如果。。。。否则如果。。。否则,请注意:这与SQL的其余部分一样,它是声明性的,而不是程序性的,比如<代码>如果是“< /COD>”。你告诉SQL你想要什么,而你告诉JavaScript或C++或者任何编程语言该怎么做。 这个查询可能会帮你

SELECT CASE WHEN total_score >= 0  AND total_score <=  49 THEN 'F'
            WHEN total_score >= 50 AND total_score <=  54 THEN 'E'
            WHEN total_score >= 55 AND total_score <=  59 THEN 'D'
            WHEN total_score >= 60 AND total_score <=  64 THEN 'C'
            WHEN total_score >= 65 AND total_score <=  69 THEN 'B'
            WHEN total_score >= 70 AND total_score <= 100 THEN 'A'
            ELSE 'NA' END AS grade,         
       *  
  FROM coursereg1sttbl
  WHERE matricno = '$matno'
   AND registratioin_status ='1';

选择CASE WHEN total_score>=0,total_score=50,total_score=55,total_score=60,total_score=65,total_score=70,total_score=70时,立即在查询中使用
CASE
操作符()。这看起来很有趣,我将尝试一下。我的主要目标是更新同一个表,并设置列Grade=该级别基于conditions@meetmec12:您可以轻松地将其转换为
update
语句:
updatecoursereg1sttbl SET gade=CASE。。。结束位置…