2016-07-01 44 views
1

有2個表quotedetails和quotationmaster和一個普通字段QuoteNo。 SNO是報價大師的主鍵。我想獲得最大的sno並使用它,我想將相同的QuoteNo插入到2個不同的表中。 繼承人我的代碼。我想要得到最後一個插入的ID

$response = ''; 
$customer=TableRegistry::get('quotationmaster'); 
$query=$customer->query(); 
$this->set(array('data'=>$query)); 
$response = $customer->find(); 
foreach($response as $row) 
{ 
    //echo $row['QuoteNo']; 
    $x++; 
} 
$qno = $x + 1; 
$nqno = 'Q1-'.$qno; 
$query->insert(['QuoteNo'])-> 
values(['QuoteNo'=>$nqno])->execute(); 
if($query) 
{ 
    $this->Flash->success('Saved'); 
    $this->redirect(['controller'=>'Stockcheck','action'=>'index']); 
} 

$quotedetails=TableRegistry::get('quotationmaster'); 
$detquery=$quotedetails->query(); 
$options = $detquery->select(['QuoteNo'],['SerialNO' => $query->func()->MAX('SNO')]); 
$qresponse = $quotedetails->find('all', $options); 


Any helps are appreciable... 
+0

沒有冒犯,但看起來很奇怪。測試'$ query'將始終是真實的,Query :: select()的第二個參數需要一個布爾值,而不是數組,而'Table :: find()'的第二個參數需要一個數組,而不是查詢對象。運行該代碼時應該會看到一堆錯誤。你確定你知道你在那裏做什麼嗎?我會建議多研究一下這些文檔,以便更好地理解工作方式,然後使用'Table :: save()'而不是手動插入記錄。 – ndm

回答

0

你可以嘗試使用:

echo $this->SNO->getInsertID(); 
echo $this->SNO->getLastInsertID(); 

你可以使用任何上述方法來獲得最後插入的ID。

+0

No ..在布爾值上調用成員函數getInsertID(),此錯誤正在拋出。 – Sheen