상세 페이지 : 댓글 출력

DATE : 2023/12/06

이제는 상세 페이지에 보여줄 댓글 꾸러미가 준비되어있다..!

사용자가 선택한 상세 페이지에 달린 댓글만 주워와서 화면에 하나씩 출력하는 코드를 작성해보자.

...
<div class="comment_box">
    <?php
        $sql = "SELECT * FROM comments WHERE idx=$idx";
        $res = mysqli_query($conn, $sql);
                
        $rows = mysqli_num_rows($res);
        if($rows == 0) { ?>
            <div class="comments">
                <h2>There is No Comment! :(</h2>
            </div>
        <?php } else {
            while($row = mysqli_fetch_array($res)) { ?>
                <div class="comments">
                    <h4 class="author">From : <?=$row['author'];?></h4>
                    <p><?=$row['comment'];?></p>
                </div>
        <?php }} ?>
</div>
...

상세 페이지 중 댓글을 보여줄 영역은 comment_box로 article.php에 작성한 HTML code의 일부이다.

전체적인 흐름은 크게 2가지로,

(1) 게시물에 아무런 댓글도 달리지 않은 경우(= SELECT문 결과, row가 0개인 경우)에는

"There is No Comment!" 문구를 출력하고

(2) 게시물에 하나라도 댓글이 달린 경우(= SELECT문 결과, row개수가 0이 아닌 경우)에는

댓글 작성자 & 댓글 내용을 가져와 출력하는 형태로 구성된다.

이때 사용자가 선택한 게시물의 ID와 idx 값이 일치하는 댓글만 긁어와 ($sql 내용)

array로 데이터 형태를 바꿔준 다음,

ex) $row['comment']

배열 값을 참조해 필요한 내용만 출력해준다.

코드가 그리 어렵지 않으니 바로 결과를 보면!

댓글이 달린 게시물에는 작성자와 댓글 내용이 위에서 아래로 정렬되는 걸 볼 수 있고

(정해진 영역을 넘어갈 정도로 댓글이 쌓이면 자동으로 스크롤 바가 생성됨)

댓글이 없는 게시물에는 " There is No Comment! :( " 문구가 나오는 걸 확인할 수 있다!!

이렇게 해서 댓글과 관련된 부분도 기본적인 기능은 갖추어진 듯하다!

그 밖에 기능은 차근차근 추가할 예정으로 이번 POST에서는 일단 여기까지!

Last updated