CI 묻고 답하기

제목 게시글과 댓글 출력 어떻게 하나요?
글쓴이 샤엠 작성시각 2012/12/16 03:08:16
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14347   RSS
 너무 허접한 질문을 여쭙게 되서 정말 죄송합니다. 꾸벅;;

게시글 출력과 댓글 출력을 해야하는데 어떻게 출력해야 하는지 모르겠습니다.

구성하려는 페이지는 대략 이렇습니다.
(저는 이렇게 절대 구성하기 싫습니다. 요청에 의해 어쩔수 없이 ㅠㅠ)

쉽게 설명하자면 이렇습니다. 페이스북의 뉴스피드를 생각하시면 될것 같습니다.
게시글과 댓글이 출력되는데 하나의 게시글을 출력하는게 아니라
페북처럼 여러 글을 출력시켜야 합니다.ㅠㅠ 댓글은 5개로 페이지네이션으로 구성되어 집니다.

DB 구성은 게시글과 코멘트가 따로 존재 합니다. 물론 조인할 키값은 존재 합니다.
그런데 출력 과정에서 이중 for 문을 쓰는게 옳은 건가요?
저는 이중 for 문을 이용해서 출력하는 방법말고는 모르겠습니다. 

<?php
// Controller or Model files
$letter = (CI result() 함수로 여러 글을 담은 상태입니다.);

// view files ↓
<?php if($letter !== false):foreach($letter as $lt):?>
//...... 생략.......
//코멘트 출력부분
// 여기서;; 조인할 키값을 다이렉트로 ;;; ㅠㅠ
// 변수에 할당하고 변수를 반복문 돌려서 출력해버립니다.
// 잘못되도 먼가 크게 잘못되었다고 생각합니다.
// 시간이 없어서 이렇게 작성을 해놓았는데;;
// 처음부터 DB 에서 받아올때 게시글과 코멘트를
// 묶어서 가져와야 하는 건가요? 
<?php $comment = $this->(모델)->get_comment_data($lt->lt_id);?>
//... 이곳에서 $comment 를 가지고 또 ;; 포문을 돌립니다 ㅜ

<?php endforeach;else:?>
<?php endif;?>
 제가 DB 에서 데이터를 가져오는 부분에서 잘못 되었다면 ;;
데이터를 가져올때 어떤 식으로 가져와야 하는지 가르침좀 부탁 드리겠습니다.

현재 게시글을 가져올때는 유저테이블과 조인하여 유저 정보를 참조하여 게시글과 같이 가져옵니다.
그리고 댓글은;; 포문도중에 저렇게;; 함수를 다이렉트로 쓰는 만행을 저질러서 가져오고 있습니다.
그걸 또;; 포문 돌려서 출력 시킵니다...;; ㄷㄷ;;

많은 가르침 부탁드리겠습니다.
 다음글 초보의 질문! 도메인 연결 후 링크.. (6)
 이전글 [초보] JOIN문 질문이요 (4)

댓글

변종원(웅파) / 2012/12/16 18:11:06 / 추천 0
조인해서 리스트 1개에 댓글 여러개 형태로 가져오고 이중 foreach 돌리시는게 제일 좋은 방법 같네요
샤엠 / 2012/12/16 23:03:46 / 추천 0
답변 감사합니다. ^^
제가 php 공부를 ;; 멋대로 해서 제가 이해하는게 맞는지 모르겠네요 ㅎ
저는 조인해서 데이터를 한번에 가져오라는 말을 이렇게 이해했습니다.

$letter => 예시) 게시글과 코멘트를 가져온 레코드 1개 
$letter = 
 - title (게시글 제목)
 - comment (코멘트) => 이녀석은 $letter 안에서 배열형태로 코멘트를 가지는 요소(?);;
설명을 제가 너무 못하네요 아래 코드를 보시면;; 될지 모르겠네요 ㅎㅎ;;
---
$letter = (게시글과 코멘트를 가져온 데이터)
foreach($letter as $lt){
  echo $letter->title;
  foreach($letter->comment as $com){
    echo  $com->content . '<br/>';
    echo $com->regist_date . '<br/>';
  }
}
웅파님 말씀이;; 이 방법은 말씀하시는 건가요? 
흠;;  sql 공부좀 더 해야겠네요 ㅎㅎ;;
각 레코드 안에 하나의 필드가 배열로 여러값을 가져오는걸 제가 못하는 것 같네요 ㅎㅎ
답변 감사드립니다.^^
변종원(웅파) / 2012/12/17 09:06:17 / 추천 0
샤엠/ 네 맞습니다. 한방 쿼리가 힘들면 2개의 쿼리결과를 가져와서 합치는 방안도 생각해보시구요.