2017-06-15 126 views
0

我嘗試使用CodeIgniter將數據插入到具有外鍵的多個表中。

這是我的第一張表koor_pen
no_koor(小學) utm_y | utm_x | latit |隆基

這裏是我的第二個表稱爲input_pen
no_form(主要)| kode_bps | no_obs | no_koor(國外)| t_tanah | catatan使用CodeIgniter框架將數據插入到具有外鍵的多個表中


這是我的控制器

function c_submit(){ 
    $data = array(
     'no_form' => $this->input->post('noform'), 
     'kode_bps' => $this->input->post('kodebps'), 
     'no_obs' => $this->input->post('noobs'), 
     'no_koor' => $this->input->post('nokoor'), 
     'tanaman_u' => $this->input->post('tutama'), 
     't_tanah' => $this->input->post('ttanah'), 
     'catatan' => $this->input->post('cat') 
    ); 

    $datakoor = array(
     'no_koor' => $this->input->post('nokoor'), 
     'utm_y' => $this->input->post('y'), 
     'utm_x' => $this->input->post('x'), 
     'latit' => $this->input->post('deg')." ". 
        $this->input->post('min')." ". 
        $this->input->post('sec'), 
     'longi' => $this->input->post('deg2')." ". 
        $this->input->post('min2')." ". 
        $this->input->post('sec2') 
    ); 

    $no_obs = $this->session->userdata('no_obs'); 
    $this->m_input->m_submit($data, $datakoor); 
    redirect(base_url("c_input")); 
} 

和模型

function m_submit($data, $datakoor) { 

    $this->db->trans_start(); 

    $this->db->insert('koor_pen', $datakoor); 
    $no_koor = $this->db->insert_id(); 

    $this->db->where('no_koor',$no_koor); 
    $this->db->insert('input_pen', $data); 

    $this->db->trans_complete(); 

    return $this->db->insert_id(); 

} 

當我運行的代碼,它顯示了這樣 enter image description here

+0

請檢查您在主表中存在的主表中添加的值。 –

+0

如果兩張表格在同一時間以一種形式輸入會怎樣? @PankajSharma – Kiki

+0

@Kiki你會在下面檢查我的答案嗎? –

回答

2

您的值變爲空。您必須在$data中通過$no_koor,以便可以替換值。試試這個:

function m_submit($data, $datakoor) { 

    $this->db->trans_start(); 

    $this->db->insert('koor_pen', $datakoor); 
    $no_koor = $this->db->insert_id(); 

    //$this->db->where('no_koor',$no_koor); 
    $data['no_koor'] = $no_koor; 
    $this->db->insert('input_pen', $data); 

    $this->db->trans_complete(); 

    return $this->db->insert_id(); 

} 
0

的錯誤與foreign key constraint錯誤如圖所示。規則是,您只能添加或更新child表中已存在於parent表中的值。因此在插入時請確保您試圖在child表中插入的值已存在於parent表中。

有時插入順序也很重要,可能值是它們在查詢中,但是您首先正在運行子表查詢。所以在這種情況下也要檢查訂單。

+0

如果兩個表格在同一時間以一種形式輸入會怎樣? – Kiki

+0

該序列就像先在主數據庫中添加數據,然後在子數據庫中添加數據 –

+0

,這樣當我在同一時間在同一時間輸入兩張表格時,是否可以使用? – Kiki

1

問題是在這裏 no_koor(外國)這是你的外鍵和在你的查詢no_koor這個字段越來越「」在您的查詢,當你發送圖像。所以請先檢查您的查詢。

相關問題