0

質問

Codeigniter で一度に 3 つのテーブルを更新するにはどうすればよいですか? 以前にこれを行いましたが、このケースは少し異なり、現在 2 日間立ち往生しています。

更新したいテーブルが3つあります。

結合テーブルを使用して 3 つのテーブルを更新する方法がわかりません。私のモデルは次のようになります。

function edit_aanbieding($data, $image_data)
{
    $id = $this->uri->segment(3);
    $this->db->update('Aanbiedingen', $data); 
    $insertfoto = array(
        'fotonaam' => $image_data['file_name']
    );
    $this->db->join('Aanbiedingen', 'bedrijfaanbiedingen.idaanbiedingen = Aanbiedignen.idaanbiedingen');
    $this->db->join('fotoaanbiedingen', 'bedrijfaanbiedingen.idfotoaanbiedingen = fotoaanbiedingen.idfotoaanbiedingen');
    $this->db->where('idbedrijfaanbiedingen', $id);
    $this->db->update('fotoaanbiedingen', $insertfoto);
}

私のコントローラーは次のようになります。

function editaanbieding()
{
    $data = array(
        'Aanbieding' => $this->input->post('aanbiedingnaam'),
        'Tekst' => $this->input->post('aanbiedingomschrijving'),
        'Prijs' => $this->input->post('aanbiedingprijs'),
        'Conditie' => $this->input->post('aanbiedingconditie')
    );
    $config['upload_path'] = './assets/uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '1000';
    $config['max_width']  = '';
    $config['max_height']  = '';
    $config['overwrite'] = TRUE;
    $config['remove_spaces'] = TRUE;
    $config['file_name'] = $this->input->post('aanbiedingfoto');

    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload('aanbiedingfoto'))
    {
        $error = array('error' => $this->upload->display_errors());
    }else{
     $image_data = $this->upload->data();
    }
    $this->aanbieding_model->edit_aanbieding($data, $image_data);
    redirect('members/aanbiedingen');
}

しかし、これはうまくいきません。私が達成しようとしていることについて、それが理にかなっていることを願っています。

4

2 に答える 2

0

codeigniter に仕事をさせる代わりに、このような単一の更新クエリを作成できます。

UPDATE table1,table2,table3 SET table1.col=a,table2.col2=b,table3.col3=c
WHERE table1.col1=x and table2.col2=y and table3.col3=z;

これは、任意の数のテーブル更新に対して有効です。

于 2013-06-20T10:33:34.300 に答える