其他条件的PHP

时间:2018-11-04 22:24:52

标签: php codeigniter web while-loop

我知道我的问题可能与 while else statement? PHP。 但是,该解决方案似乎不适用于我的情况。

  

所以,就我而言,是这样的。

  1. 我从数据库中进行select查询以获取所有记录,然后获取result in array
  2. 我从数组中获得了totalperiod
  3. 进行检查,当$qtyOut > $total时,它将循环{}内的语句。
  4. 这是这里的问题,在LOOP LOOP ENDS之后,它应该执行else语句(调用另一个函数)。
    public function trialOut($id, $qtyOut)
        {
            $a = $this->uri->segment(3);
            $dataset = $this->m1->trial($a);
            $i = 0;
            $sisa;
            $total = $dataset[$i]['total'];
            $period = $dataset[$i]['periode'];
            if($qtyOut > $total){
                while ($qtyOut > $total) {
                    $qtyOut = $qtyOut - $total;
                    $this->m1->updateOut2($period, $id);
                    $i++;
                    $total = $dataset[$i]['total'];
                    $period = $dataset[$i]['periode'];
                }
            } else{ //when while loop ends, i want it to execute the code here
                $sisa = $total - $qtyOut;
                $this->m1->updateOut1($period, $sisa, $id);
            }
        }

我仍然找不到执行此操作的正确方法,我应该使用其他循环方法以及如何执行该操作吗?

1 个答案:

答案 0 :(得分:2)

如果-else语句在此逻辑下起作用。 if语句下的if条件为true时,将执行insde {} if(condition) {//this code is executed}代码。但是,如果 condition = false 下的代码将执行。请记住,您的else语句将在$qtyOut > $total时不执行。

如果要在if语句后执行它,只需除去else和方括号即可。

如果要在结束后执行它,请尝试

public function trialOut($id, $qtyOut)
        {
            $a = $this->uri->segment(3);
            $dataset = $this->m1->trial($a);
            $i = 0;
            $sisa;
            $total = $dataset[$i]['total'];
            $period = $dataset[$i]['periode'];
            if($qtyOut > $total){
                while ($qtyOut > $total) {
                    $qtyOut = $qtyOut - $total;
                    $this->m1->updateOut2($period, $id);
                    $i++;
                    $total = $dataset[$i]['total'];
                    $period = $dataset[$i]['periode'];
                }
                $sisa = $total - $qtyOut;
                $this->m1->updateOut1($period, $sisa, $id);
            } 
        }
  

如果还有其他解释

以这个例子

x = 5;
if( x = 5 ){
echo 'x is 5';
}
if( x != 5){
echo 'x is not five'
}

是与

相同的代码
x = 5;
if( x = 5 ){
echo 'x is 5';
}else{
echo 'x is not five'
}

在第一种情况下,您要检查x = 5,然后检查x不等于5。 在第二种情况下,您正在检查x = 5,如果不是,则执行否则