2013-06-20 3 views
0

ВопросКак обновить 3 таблицы в codeigniter?

Как обновить 3 таблицы сразу в Codeigniter? Я сделал это раньше, но этот случай немного отличается, и я застрял уже два дня.

У меня есть 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'); 
} 

Но это не работает. Надеюсь, это имеет смысл в отношении того, что я пытаюсь достичь.

+1

Вы уже спрашивали об этом вчера. Не удалось получить решение? – Loko

+1

Нет. Этот вопрос немного чище. люди не получали то, что я пытался получить. Надеюсь, этот вопрос. –

+0

@KeesSonnema Я не знаком с codeigniter, но почему бы вам не обновлять таблицу за столом (не все сразу)? – HamZa

ответ

0

Не можете ли вы добавить скрытое поле с идентификатором фотографии на ваш взгляд? Я всегда делаю это так:

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

Как именно? никогда не делал этого. –

+0

Я не могу просто добавить идентификатор. Мне нужен идентификатор из базы данных. Как я мог это сделать? Таким образом, идентификатор никогда не будет одинаковым для каждого редактирования. –

+0

Получите его по имени вашей старой фотографии. – RobinCominotto

0

Вместо того, чтобы makeignignign выполнял задание, вы можете сделать один запрос на обновление следующим образом.

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; 

Это было бы верно для обновления любого количества таблиц.

+0

Я могу это сделать сам. но я не знаю, как это сделать. Я застрял и не знаю, как создать запрос. –

+0

любые другие идеи? –

Смежные вопросы