在codeigniter中切换案例

时间:2014-04-16 14:57:41

标签: php codeigniter

我正在使用codeigniter框架。我有一个切换案例问题,其中交换机案例不起作用。 $total_Assessment未按标记范围分组,$grade的所有值均相同。希望有人能纠正我的错误。

这是我的观点功能:

  <?php $number=1;$grade=null;$pointer=0;$level=null;?>
                 <?php foreach ($query as $data):?>
                 <tr>
                     <td><?php echo $number ?></td>
                     <td><?php echo $data->Matric_No; ?></td>
                     <td><?php echo $data->Student_Name; ?></td>
                     <td><?php echo $data->Result_Mark_1; ?></td>
                     <td><?php echo $data->Result_Mark_2; ?></td>
                     <td><?php echo $data->Result_Mark_3; ?></td>
                     <td><?php echo $data->Result_Mark_4; ?></td>
                     <td><?php echo $data->Result_Mark_5; ?></td>

                     <?php $total_Assessment=$data->Result_Mark_1+$data-Result_Mark_2+$data->Result_Mark_3+$data->Result_Mark_4+$data->Result_Mark_5 ?>
                     <td><?php echo $total_Assessment ?></td>

                     <?php
                     switch ($total_Assessment)
                     {
                         case "$total_Assessment>=80":
                             $grade="A";
                             break;

                         case "$total_Assessment>=75":
                             $grade="A-";
                             break;

                         case "$total_Assessment>=70":
                             $grade="B+";
                             break;

                         case "$total_Assessment>=65":
                             $grade="B";
                             break;

                         case "$total_Assessment>=60":
                             $grade="B-";
                             break;

                         case "$total_Assessment>=55":
                             $grade="C+";
                             break;

                         case "$total_Assessment>=50":
                             $grade="C";
                             break;

                         case "$total_Assessment>=45":
                             $grade="C-";
                             break;

                         case "$total_Assessment>=40":
                             $grade="D";
                             break;

                         default:
                             $grade="F";

                     }
                     ?>

                     <td><?php echo $grade?></td>

谢谢。

2 个答案:

答案 0 :(得分:0)

我不知道你想做什么,但我们可以在你的代码中找到它:

$total_Assessment=$data->Result_Mark_1+$data-Result_Mark_2+$data->Result_Mark_3+$data->Result_Mark_4+$data->Result_Mark_5

我们会看到加法和减法,因此$total_Assessment必须是数字。

switch ($total_Assessment)
{
    case "$total_Assessment>=80":

哦,等等! $total_Assessment应该是PHP代码的字符串吗?那是不可能的!

我怀疑你想要这个:

if($total_Assessment){
}elseif($total_Assessment>=75){
}
...

我还认为我引用的第一行包含几个错误:$data-Result_Mark_2?你真的有一个名为Result_Mark_2的常数吗?您是否配置了开发框以帮助您处理错误消息?

答案 1 :(得分:0)

尝试删除这样的双引号:

case "$total_Assessment>=70":

到此:

case $total_Assessment>=70:

希望它会有所帮助。