질문
Q #9364
CI 초보가 질문 드립니다!!
광복절
2011-07-04 02:41:19
TIP -> 게시물 이동함
헐~ TIP 란에 질문을 올렸는지 생각도 못했습니다 ㅋ
안녕하세요 김광복 이라고 합니다.
아래 코드를 코드로 2시간째 어리둥절 하고 있습니다. 메뉴얼을 암만봐도 모르겠습니다.
아직 초보라 컨트롤에서 모두 처리하고 있습니다.
// 컨트롤러 부분
$query = $this->db->get('table');
$data = $query->result_array();
$this->load->view('test',$data);
//뷰
<? foreach ($data as $row):?>
echo "$row[test]';
<?php endforeach; ?>
//뷰
에러 가 납니다 ㅠ.ㅠ
아래와 같이 하면 잘됩니다..
// 컨트롤러
$query = $this->db->get('table');
$data['item'] = $query;
$data = $data['item'] ;
$this->load->view('test',$data);
/
/ 뷰
<? foreach ($item->result_array() as $row) :?>
생략 ...
1번에서 처럼 하려는게 컨트롤러에서 $data 를 수정하고 다시
뷰페이지에 던지려고 하는거라서요.
마야님 보드랑 기타 소스 보면 다들 모델에서 처리하셔서 ㅠ.ㅠ
어디 팁란 보면 초보는 " 컨트롤러에서 처리하는거부터 배워라 해서 열쉬미 열공하고
있습니다.
조언 부탁드립니다.
일단
컨트롤러에서 뷰로 리절트값을 보내려면 이렇게 하시면 됩니다.
//콘트롤러에서 $query = $this->db->get('table'); $data['query'] = $query->result_array(); $this->load->view('test',$data); //뷰에서 <?php foreach ($query as $row): echo "$row[test]'; endforeach; ?>즉 $this->load->view('test', $data); 에서 $data는 변수가 아니고 배열로 넘겨 주셔야 합니다.그러니 view를 load하기 전에 $data['query'] = DB에서 불러온 값을 넣어 주는것이지요..
배열의 값은 꼭 query로 할 필요는 없어요.. 다만 배열의 키 값이 뷰에서 변수명으로 사용한다는것이죠..
즉 $data['query'] 로 하시면 뷰에서 $query로 사용하는것이고..
$data['test'] = 하시면 뷰에서는 $test로 값을 사용하는것이랍니다..
하지만 위의 코드를 조금 더 수정하면 값을 보통 array로 불로 오지 않습니다.
위의 소스가 틀린것은 아니지만 특별한 경우에만 array로 사용하고 대부분 오브젝트로 불러온답니다.
그래서 위의 소스를 조금 수정해 보면 ..
//콘트롤러에서 $query = $this->db->get('table'); $data['query'] = $query->result(); $this->load->view('test',$data); //뷰에서 <?php foreach ($query as $row) : echo $row->test; endforeach; ?>즉 데이터를 불러 올때 $query->result()로 불러 온다면 foreach로 반복시킬때 $row->test형식으로 표현 할 수 있답니다. 아마 대부분 result()로 해서 $row->test형식으로 하실 거에요 .. 저도 그렇게 하고 있구요..차차 하나씩 변경해 보면서 연습하시고 나중에 모델도 사용하시고 라이브러리도 사용하시고 하면 좋은 소스코드가 될거에요...
그럼...