CI 묻고 답하기

제목 이중쿼리를 돌린 것에 대한 데이터 저장 및 리턴 방법
글쓴이 송군 작성시각 2011/09/30 14:04:33
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 21457   RSS
안녕하세요, 요즘에 질문을 많이 올리게 되네요..^^;;
이번 질문은 CI에 대한 궁금한 사항이라기 보다 어찌보면 PHP문법 처리에 대한 것이 아닌가 하는 생각이 들어
글 쓰기가 조금 망설여집니다. 문제된다면 바로 삭제하겠습니다.

제가 드릴 질문은 이중쿼리에 대한 부분입니다. 저는 PHP에 입문한지 얼마 안되어서 막코딩으로 해왔기 때문에,
하나의 php파일에 데이터처리하는 부분 작성하고 그 밑에 바로 보여지는 영역 처리하는 식으로 작업을 해왔었습니다;;

이를테면 복합적인 카테고리 리스트를 출력하려고 합니다.
먼저 최상단의 카테고리를 출력합니다. 
그리고 곧 바로 출력된 카테고리로 다시 쿼리문을 보냅니다. 출력된 카테고리의 자식 카테고리을 불러옵니다. 
그리고 또 출력된 자식 카테고리로 다시 쿼리문을 보냅니다. 반환되는 자식의 자식이 없다면 넘어가고
있다면 또 출력합니다.

이런식으로 예전에는 for문 안의 for문, 으로 2-3중의 for문을 돌렸었어요

지금에서야 mvc 패턴으로 처리하느라 위의 데이터 처리를
보여지게 될 뷰에서는 foreach 한번만 돌게 하려고 하는데 쿼리의 값을 어떻게 저장하고 어떻게 반환해야 할지 모르겠습니다.

알단은 컨트롤러에서  $data[ result ] = $this->모델명->함수명() 이렇게 요청하면
모델에서는 
function 함수명()
{
   $query = $this->db->get('...')
   return $query->result();

}
라고 반환하는데
반환하기 전에 출력된 결과에 따라 한번 더 쿼리를 실행시키고
그 값을 순차적으로 $data에 저장시켜 리턴하는 방법을 모르습니다;
 다음글 tank_auth. php-gd 관련 질문입니다. (3)
 이전글 변수 사용의 궁금증 (2)

댓글

한대승(불의회상) / 2011/09/30 14:34:55 / 추천 0
데이타를 어떤식으로 표현 할건지 엑셀로 만들어 보세요.
그럼 $data를 어떤식으로 배열 할지 그려 집니다.
송군 / 2011/09/30 15:00:08 / 추천 0
불의회상님 // 넵, 알겠습니다!^^
변종원(웅파) / 2011/09/30 15:05:53 / 추천 0
스쿨 같은 곳에서 검색해보시면 한방 쿼리로 3단 카테고리 가져오는 쿼리가 있습니다.

아니면 jquery로 되어 있는(ajax) chained select 검색해보시고 구조를 참고해보세요. 
들국화 / 2011/09/30 17:16:31 / 추천 0
내용이 잘 이해가 안되는데...  MVC로 바뀐다고 특별히 달라질것은 없을것 같은데요.
Model에서 함수명($depth=0) 이런식으로 해서 foreach 돌려도 되고 3단에는 1,2단 정보 까지 있을것 같은데..
읽어와서 표현해 주거나..
가장 좋은방법은 Ajax로 처리하는게 좋치 않을까요...
송군 / 2011/10/03 02:32:05 / 추천 0

모델쪽에서 직접 3중 for문을 돌려 따로 만들어둔 배열에다가 담고
그것을 리턴하여 처리하였습니다.

sql단에서 서브쿼리와 view생성을 이용하여 처리하려고 했지만
아직은 제 머리로 이해하지 못하여 노가다로 처리해버렸네요..

답변해주신 불의회상님, 웅파님, 들국화님 정말 감사드립니다.^^

한대승(불의회상) / 2011/10/04 07:57:10 / 추천 0
송승화// ^^ 적절하게 잘 처리 하셨군요

DATA가 적을때는 승화님이 처리 하신 방법으로 처리 하시면 됩니다.
DATA가 아주(?) 많거나 DUMP해야 할 때는 MVC 무시 하시고 컨트롤러에서 데이터 읽어서 바로 처리 하세요.

송군 / 2011/10/07 02:44:15 / 추천 0

불의회상님//    넵, 조언감사드립니다^^ㅎㅎ