제목 | db 질문입니다. | ||
---|---|---|---|
글쓴이 | 수야디벨 | 작성시각 | 2012/11/02 14:30:20 |
|
|||
$this->db->where의 메뉴얼정의는 아래와 같더라구요. $data = array( 'title' => $title, 'name' => $name, 'date' => $date ); $this->db->where('id', $id); $this->db->update('mytable', $data); // 생성결과: // UPDATE mytable // SET title = '{$title}', name = '{$name}', date = '{$date}' // WHERE id = $id 즉, $data 를 배열화해서 던져주면 , 그게 곧 SET title = 의 값이 된다는 뜻인데요.. 제가 같은 DB를 2번건드립니다. 우선 , 한번은 $data = array( 'b_no' => NULL, 'userid' => 'zzonx', 'station_no' => '2', 'contents'=>NULL, 'file_path'=>$name, ); 이런식으로 정해서 DB에 틀을 잡아줘요 .($this->db->insert($data)) (contents 만 NULL이고, b_no는 autoincrement라서 저절로 값이 증가되면서 들어가네요) (결과적으로 contents만 NULL 인상태가 됩니다.) 그리고나서 $dbdata = array( 'contents' => $_POST['contents'] ); $this->load->model('ss/sss_model'); $this->sns_model->db_update($dbdata); 이렇게 업데이트 치거든요 . 그러면 결과적으로 모든 필드에 값이 다 들어갑니다. 그런데 문제가 있어요. update를 제어하는 문은 아래와 같습니다. function db_update($data) { $this->db->where('userid','zzonx'); $this->db->update('sss_table',$data); redirect('sns/sns_controller/index'); } 이 소리는 userid가 zzonx인 sss_table에 값을 넣겠다는건데요. 위 기능이 게시판을 구현하기 위해서인데, 게시판의 글을 뽑아올때 db에서 뽑아오는데, 이래버리니까 같은 사용자의 db에 모두 글이 똑같이 들어가버리는거에요~ (예를들면 .. 0 zzonx 2 개발시작 file_path regedate 만 존재했따치면 또 글을 쓰게 되면 아래와같이 또 글을쓰게되면 0 zzonx 2 개발시작하네요 file_path regedate 1 zzonx 2 개발시작하네요 file_path regdate 처럼 기존에 0 번이였던 것도 아이디가 zzonx 이므로 똑같이 덮어져 버립니다. 해결방법이 없을까요? 제가 생각한 방법으로는 , b_no의 값을 뽑아와서, 이를 위에서 명시한 , function db_update($data) { $this->db->where('userid','zzonx'); $this->db->update('sss_table',$data); redirect('sns/sns_controller/index'); } 에서 $this->db->where('b_no',$b_no); 처럼 조건을 한번 더 주면 될거같은데, b_no를 뽑아와서 , $data 배열과 같이 값을 넘기는걸 모르겠습니다.ㅠ 왜냐면 $data 를 배열화해서 던져주면 , 그게 곧 SET title = 의 값이 된다는 뜻이니까, 함부로 배열에 포함을 못시키겠어요 값을 .. 조언부탁드려요 ㅠ |
|||
다음글 | 모델 로딩시 질문 (2) | ||
이전글 | 배열 넘기기 질문..... (5) | ||
헛발이
/
2012/11/02 14:53:58 /
추천
0
|
수야디벨
/
2012/11/02 15:11:15 /
추천
0
헛발이 // |
수야디벨
/
2012/11/02 15:12:28 /
추천
0
insert_id(); 라는 function이 있는건가요~? |
헛발이
/
2012/11/02 15:24:43 /
추천
0
$contents는 따로 전달 받는 의미로 해 놓은건데요..
전달 하는 방법이야 본인에게 맞게 하시면 되구요... 원래 PHP에서는 mysql_insert_id 로 명령이 있구요.. ci에서도 $this->db->insert_id() 가 존재합니다. http://codeigniter-kr.org/user_guide_2.1.0/database/helpers.html 여기를 한번 참조 하세요~ |
수야디벨
/
2012/11/02 15:31:46 /
추천
0
헛발이 //
아하 그렇군요~ 그러면 아이디번호를 삽입해주는데, 1부터 하나씩 증가되는건가요그럼? |
헛발이
/
2012/11/02 15:34:33 /
추천
0
그쵸 auto_increment 라면 자동이니깐요..
1부터 자동으로 들어갈거에요.. |
수야디벨
/
2012/11/02 15:38:39 /
추천
0
헛발이// |
레코드 번호는 자동추가되면 배열에 값이 없어도 됩니다.
근데 왜 한번에 해도 되는 작업을 두번에 걸쳐서 하는지 의문입니다...
그냥 한번에 다음과 같이도 되는데요...