Пока другое условие PHP - PullRequest
       2

Пока другое условие PHP

0 голосов
/ 05 ноября 2018

Я знаю, что мой вопрос может быть похож на а еще заявление? PHP . Однако это решение, похоже, не работает с моим делом.

Итак, в моем случае это что-то вроде этого.

  1. Я делаю запрос select из базы данных, чтобы получить все записи, затем получаю result in array
  2. Я получаю total и period из массива
  3. Выполните проверку, когда $qtyOut > $total зациклит операторы внутри {}.
  4. Это проблема здесь, ПОСЛЕ ЗАКЛЮЧЕНИЯ КОНЕЦ, она должна делать оператор 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 голосов
/ 05 ноября 2018

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, и если это не только тогда, иначе выполнится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...