2013-08-06 4 views
-1

나는 Books의 데이터를 삽입하기위한 테이블을 만들었으며 그 값은 폼에서 가져온 것입니다. 이제 CRUD 작업을 수행하려고했습니다. 하지만 데이터를 업데이트하는 데 문제가있었습니다. 이전 데이터를 바꾸는 대신 입력 한 데이터를 새 항목으로 사용합니다. 나는 무엇을해야만 하는가?Codeigniter를 통해 레코드 업데이트 |

는 나는 또 다른 링크를 통해 입력 할 수있는 책과 그 세부 사항의 목록을 보여줍니다 페이지로 리디렉션 홈페이지에 링크를 생성 한 다음과 같이 내가 무슨 짓을

이었다 책을 추가합니다. Book_ID가 라이브러리 테이블의 기본 키로 사용되었습니다.

이제 목록이 표시된 페이지에 '수정'및 '삭제'버튼이 추가되었습니다. 삭제 버튼은 구문이 직접적이고 간단하므로 잘 작동합니다. 하지만 편집 버튼의 경우 도서 추가 페이지로 리디렉션되지만 양식은 $ Book_ID = $ B $ this -> -> uri-> segments [3];을 (를) 사용하여 특정 데이터로 자동 완성됩니다. 그 특정 Book_ID와 특정 행에서 데이터를 검색하기 위해 나는 base_model에 보냈습니다.

이제 문제는 데이터를 편집 한 후 태그를 넣었습니다.하지만이 작업을 수행해야하는지 여부는 거의 확실하지 않습니다. 나는 거기에 있어야한다고 들었습니다. 그러나 실제로 Book_ID를 다시 컨트롤러로 보내야하고 그 ID가 해당 행의 데이터를 업데이트하는 모델로 전송되어야합니다. 정말 혼란스러워!

+0

업데이트 후 컨트롤러에서 book_id를 다시 가져 오는 데 문제가 있습니까? –

+0

우리가 당신을 도울 수 있도록 몇 가지 코드를 보여주십시오. –

+0

uri에 잘못된 매개 변수를 쓰는 것은 $ this-> uri-> segment (3)입니다. –

답변

0

그래, 당신은 우선은 모델에서 지금 을 이런 식으로

컨트롤러

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

에서이 작업을 수행 할 수 있습니다 book_idupdate records에 다시 전송에이

` 
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

데이터를 업데이트하려는 레코드의 배열 및 ID로 보내십시오.

컨트롤러

$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; 
} 

이 그것을 할 그것을 작동합니다.