2013-08-05 3 views
0

내가 가진 하나의 액션 zf2과 2 테이블에서 데이터를 삭제 2 표업데이트,

**Table sale :** 

id_sale int 
id_projet int 
price  float 
date  date 


**Table sale_ligne:** 

id_sale_ligne int 
id_sale  int FK_SALE 
id_projet  int 
price   float 
date   date 

나는

$this->dbAdapter->query('INSERT INTO sale (price, date) VALUES (?, ?)', array('price', 'date')); 
    $salesId = $this->dbAdapter->getDriver()->getLastGeneratedValue(); 
$this->dbAdapter->query('INSERT INTO sale_ligne (price, date, id_sale) VALUES (?,?,?)',array('price', 'date', $salesId)); 
와 함께 판매 테이블에 삽입 할 때 동시에 테이블 line_sale의 쿼리를 삽입 할 수 있었다

, 나는 한 번의 클릭으로 판매 테이블과의 관계로 line_sale 행을 원한다. (id = 2 "exemple")로 판매 recorde를 삭제하면 (id_sale = 2) line_sale이 삭제됨을 의미한다. 자동으로 삭제됨, 업데이트 할 때 동일한 thinck (id = 2 "exemple")로 업데이트 할 때 (가격, 날짜) 업데이트됩니다. 를 automaticly와 line_sale에 (id_sale = 2) 메신저 SQL 요청에 대한 어댑터를 사용하고 난

public function getLigneVenteByVente($id) 
    { 
     $result = $this->select(function (Select $select) use ($id){ 
     $select->where(array('id_sale'=>$id));  
     $select->join('sale', ' ligne_sale.id_sale=sale.id '); 
     }); 
     return $result; 


    } 

당신은 단지 SQL을 사용할 수

답변

2

참가하거나하고 들으 특정 판매를위한 Line_sale의를 얻기 위해이 기능을 사용하여 같은 이 :

DELETE FROM table1, table2 WHERE table1.id = (constant) AND table1.id = table2.id 

여기서 상수는 두 표 모두를 삭제하려는 id 값입니다.

이것은 이미 this question에 응답되었습니다.

+0

thx하지만 SQL 요청에 대해 묻지 않았습니다. 제 경우에는 어댑터로 적용하는 방법을 묻는 것입니다. – Loouu