【问题标题】:How to update 3 tables in codeigniter?如何更新codeigniter中的3个表?
【发布时间】:2013-06-17 00:02:20
【问题描述】:

问题

如何在 Codeigniter 中一次更新 3 个表?我之前做过这个,但这个案例有点不同,我现在被困了两天。

我有 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');
}

但这不起作用。希望这对我正在努力实现的目标有意义。

【问题讨论】:

  • 你昨天已经问过了。找不到解决方案?
  • 没有。这个问题有点干净。人们没有得到我想要得到的东西。希望这个问题可以。
  • @KeesSonnema 我不熟悉 codeigniter,但你为什么不逐个表更新(不是一次)?
  • 我逐表更新。我有 3 个更新语句。两个在我的 edit_aanbieding 和一个在我的 insert_bedrijfaanbieding。

标签: php mysql forms codeigniter insert-update


【解决方案1】:

您可以像这样进行单个更新查询,而不是让 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;

这对任意数量的表更新都有效。

【讨论】:

  • 我自己可以做到。但我不知道我该怎么做。我被卡住了,不知道如何构建查询。
【解决方案2】:

您不能在视图中添加一个带有照片 ID 的隐藏字段吗?我总是这样:

form_input(array('name' => 'idfoto', 'type'=>'hidden', 'id' =>'23'));

【讨论】:

  • 究竟如何?从来没有这样做过。
  • 我不能只添加 id。我需要数据库中的 id。我怎么能那样做?所以每次编辑的 id 都不相同
  • 通过旧照片的名称获取。
  • 是的。这就是我想要的。但如何?我为此苦苦挣扎了这么久,我不知道什么是错的还是好的。
  • 注意:我需要将照片设置为编辑。该字段现在为空,因此我无法获取表单中的 ID。
猜你喜欢
  • 1970-01-01
  • 2023-01-11
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多