首页 > 解决方案 > 查找分数低于 50 的科目并在 php 中显示科目名称

问题描述

表格显示了班级中各个科目的学生成绩。有些学生在某些核心科目中得分低于及格分数。

现在,在每个学生的成绩单中,我想显示他们重新参加了他们得分低于 50 的科目(及格分数)。

例如 - 一个学生的物理和化学分数分别为 45 和 49,低于这些科目的及格分数。他的成绩单应该写着“建议重新参加物理和化学”

这是我的 if 语句

  <?php

if ($value->h_tot_score >= 90 && $value->h_tot_score <= 100) {
   $result = 'PROMOTED TO THE NEXT CLASS';
                                               
} elseif ($value->h_tot_score >= 45 && $value->h_tot_score <= 49.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ';

} elseif ($value->h_tot_score >= 40 && $value->h_tot_score <= 44.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ';

} elseif ($value->h_tot_score >= 0 && $value->h_tot_score <= 39.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ';
}
?>

这是我获取分数低于 50 的科目的查询

SELECT `subject_id` FROM `hscores_primary` WHERE `class_id` in (15,16,17) and `student_id=461` AND `h_tot_score` <= 49.99

结果是 subject_id =79 和 34

如何在上面的 if 语句中自动显示或回显主题名称?

标签: phpcodeigniter

解决方案


你可以做一个左连接。假设保存主题名称的行subjects被调用subject_name

SELECT h.subject_id, h.h_tot_score, s.subject_name 
FROM hscores_primary h 
LEFT JOIN subjects s
ON h.subject_id = s.id
WHERE h.class_id IN (15,16,17) 
AND h.student_id=461 

和PHP

<?php

if ($value->h_tot_score >= 90 && $value->h_tot_score <= 100) {
  $result = 'PROMOTED TO THE NEXT CLASS';
} elseif ($value->h_tot_score >= 45 && $value->h_tot_score <= 49.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ' . $value->subject_name;
} elseif ($value->h_tot_score >= 40 && $value->h_tot_score <= 44.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ' . $value->subject_name;
} elseif ($value->h_tot_score >= 0 && $value->h_tot_score <= 39.99) {
  $result= 'RECOMMENDED FOR RE-SIT IN ' . $value->subject_name;
}
?>

推荐阅读