2017-02-07 115 views
0

表如何算錶行和執行代碼使用循環當條件滿足PHP

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

我在我的表中的多個行。

當我點擊提交按鈕,它檢查所有行,如果所有行的狀態爲4,然後我把保存條件否則運行另一代碼。

我需要算我的錶行假設他們是2行與狀態== 3,那麼我的for循環計數行,如果所有的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

沒有我需要的。我保存的邏輯,只有當所有的內部數據庫中的行沒有狀態4其他明智的保存邏輯將不執行執行......對於給定的訂單ID .. –

+0

你的意思是所有記錄應具有的地位4?再看看更新answer.What我之前,你需要的狀態4特定訂單ID的所有記錄? –