2013-08-06 13 views
-1

Я создал таблицу для вставки данных Книги, значения которой берутся из формы. Теперь я хотел выполнить операции CRUD. Но у меня были проблемы с обновлением данных. Вместо замены старых данных введенные данные принимаются как новая запись. Что мне делать?Обновление записей через Codeigniter |

Что я сделал следующим образом:

Я создал ссылку на главную страницу, которая перенаправляет на страницу, где он показывает список книг и их деталей, которые могут быть введены через другую ссылку для добавление книг. Book_ID был выбран в качестве основного ключа для таблицы библиотеки.

Теперь, на странице, где отображается список, я добавил кнопку «EDIT» и «DELETE». Кнопка «Удалить» отлично работает, поскольку синтаксис является прямым и простым. Но для кнопки «Редактировать», которая перенаправляется на страницу «Добавить книгу», но форма автоматически заполняется конкретными данными с помощью $ Book_ID = $ B $ this -> -> uri-> segment [3]; который я отправил в base_model для извлечения данных из этой конкретной строки с этим конкретным Book_ID.

Теперь проблема заключается в том, что после редактирования данных я поставил тег ... но я не очень уверен, должен ли я это делать. Мне сказали, что он должен быть там. Но тот факт, что я действительно должен отправить Book_ID обратно контроллеру, и который должен быть отправлен в модель, где он использует этот конкретный идентификатор для обновления данных в этой строке. Я действительно смущен!

+0

В чем проблема с возвратом book_id в вашем контроллере после обновления? –

+0

Показать код, чтобы мы могли вам помочь. –

+0

вы пишете неправильный параметр в uri, это $ this-> uri-> segment (3) –

ответ

0

да, вы должны отправить обратно book_id в update records .Вы можете сделать это таким образом

Ваш контроллер

`public function update_books($book_id) 
{ 
    $data=$this->Your_model_name->book_data($book_id); 
    if($data) 
    { 
     'your success message'; 
    } 
    else 
    { 
     'Your error message'; 
    } 
} 
` 

и теперь в модели

` 
public function book_data($book_id) 
{ 
    $this->db->where('id',$book_id); 
    if($this->db->update('TABLE_NAME',array('field_name'=>$this->input->post('post_variable_name')))) 
    return true; 
    else 
    return false; 

} 
` 

Это простой способ обновить ваши записи.

0

отправьте свои данные как массив и идентификатор записи, которую вы хотите обновить.

контроллер

$form_data = array('name'=>$this->input->post('name'), 
        'email'=>$this->input->('email') 
       ); 
$this->crud_model->update($form_data,$id); 

ваша модель:

function update($data,$id) 
{ 
    $this->db->trans_start(); 
    $this->db->where('id',$id); 
    $this->db->update('yourtablename',$data); 
    $this->db->trans_complete(); 
    return TRUE; 
} 

сделать это, и он будет работать.

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