0

複数のテーブルにいくつかの値を追加したいのですが、今のところ私のコードはうまくいきません。どのテーブルに追加したい値をコメントアウトしました。

Add_employee というコントローラー

public function addemp() 
{   
    //id like to add this to 'employees'
    $data1 = array( 
    'emp_no' => $this->input->post('emp_no'),
    'birth_date' => $this->input->post('birth_date'),
    'first_name' => $this->input->post('first_name'),
    'last_name' => $this->input->post('last_name'),
    'gender' => $this->input->post('gender'),
    'hire_date' => $this->input->post('hire_date'),
    );

    //idd like to add this to 'titles'
    $data2 = array(
    'emp_no' => $this->input->post('emp_no'),
    'title' => $this->input->post('title')
    );

    //idd like to add this to 'dept_emp' and id like to add value 'emp_no' to the table 'salaries'
    $data3 = array(
    'emp_no' => $this->input->post('emp_no'),
    'dept' => $this->input->post('dept')
    );

    $mdata ['m1'] = $data1;
    $mdata ['m2'] = $data2;
    $mdata ['m3'] = $data3;

    $this->add_model->adddata($mdata);
    $this->load->view('add_view', $data1);
}

Add_model というモデル

public function adddata($data) {

    //extract();
    $this->db->insert('employees', $m1);
    $this->db->insert('titles', $m2);
    $this->db->insert('dept_emp', $m3);
    //$this->db->insert('salaries', $emp_no);//$emp_no => 'emp_no');

    return;
}
4

1 に答える 1

1

あなたはこれを試すことができます

コントローラー内

public function addemp() 
{
    $data1 = array(...);
    $data2 = array(...);
    $data3 = array(...);

    $mdata['employees'] = $data1;
    $mdata['titles'] = $data2;
    $mdata['dept_emp'] = $data3;

    $this->load->model('add_model'); // If not auto loaded then load it first
    if($this->add_model->adddata($mdata))
    {
        // do something after successful insert
    }
    else
    {
        // something went wrong, all not inserted
    }
}

モデル内

public function adddata($data) {
    $inserted=0;
    foreach($data as $k=>$v) $inserted+=(int)$this->db->insert($k, $data[$k]);
    if($inserted===count($data)) return true; // all inserted
    return false; // all not inserted
}
于 2012-12-18T17:21:40.317 に答える