2017-02-07 13 views
0

таблицыКак считать строку таблицы с помощью петли и выполнить код, когда состояние соответствует PHP

id,name,status 
1 a 3 
2 b 3 
3 c 3 

У меня есть несколько строк в моей таблице.

Когда я нажимаю кнопку отправки, он проверяет все строки, если состояние всех строк равно 4, тогда я положил условие сохранения, иначе он запускает другой код.

мне нужно считать строки моей таблицы предположим, их 2 строки со статусом == 3, то мой счет forloop строк, и если все 2 строки является статус == 4 затем создать сохранить логику ..

Пожалуйста, помогите мне реализовать

ниже моего code..but он не работает для меня ..

$cond = array('OrderDetail.order_id'=>trim($this->requestData['orderId'])); 
$orderData = $this->OrderDetail->find('all',array('conditions'=>$cond)); 
$numData = sizeof($orderData); 
$count=1; 
foreach ($orderData as $value) { 
    if($value['OrderDetail']['status'] > 3 && $value['OrderDetail']['status']!=5){ 
     if($numData == $count) { 
      // if condition meets and all the rows of table have status==4 then 
      // save logic here 
      // } 
     } 
     $count= $count+1; 
    } 

ответ

0

Вы можете просто сделать это:

$cond = array('OrderDetail.order_id'=>trim($this->requestData['orderId'])); 
// condition for status not equal to 4 
$conditionForStatus = array(
         'OrderDetail.status !='=>4, 
         // 'OrderDetail.order_id'=>trim($this->requestData['orderId']) 
         ); 

$orderData = $this->OrderDetail->find('all',array('conditions'=>$cond)); 

// find count of record where status is not equal to 4 
$countOfStatus = $this->OrderDetail->find('count',array('conditions'=>$conditionForStatus)); 
if(!empty($orderData) && $countOfStatus == 0) { 
    // your save logic here 
} 

Вам просто нужны записи в таблице, но только с статусом 4. Я прав ?

+0

Нет, мне нужно ... моя логика сохранения выполняется только тогда, когда все строки внутри db имеют статус 4, другая мудрая логика сохранения не будет выполнена ... для данного идентификатора заказа. –

+0

Вы имеете в виду, что все записи должны иметь статус 4? Затем см. Обновленный ответ. Что я получил раньше, вам нужны все записи статуса 4 для конкретного идентификатора заказа? –