我知道我的问题可能与 while else statement? PHP。 但是,该解决方案似乎不适用于我的情况。
所以,就我而言,是这样的。
select
查询以获取所有记录,然后获取result in array
total
和period
$qtyOut > $total
时,它将循环{}
内的语句。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); } }
我仍然找不到执行此操作的正确方法,我应该使用其他循环方法以及如何执行该操作吗?
答案 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,如果不是,则执行否则