If - else оператор работает по этой логике. если условие в условии if является истинным кодом, будет выполняться insde {} if(condition) {//this code is executed}
. Однако, если условие = ложь , будет выполнен код под else. Имея это в виду, ваш оператор 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, и если это не только тогда, иначе выполнится