안녕하세요! 가족과 함께하는 스마트 라이프입니다. 지난 시간까지 우리는 글을 쓰고, 고치고, 지우는 게시판의 핵심 기능을 모두 마스터했습니다. 오늘은 게시판에 활력을 불어넣는 마법, 바로 ‘댓글 시스템’을 만들어보겠습니다. 하나의 글에 여러 개의 의견이 주렁주렁 열리는 신기한 데이터 연결 마법을 배워볼까요?

1. 글과 댓글의 연결 고리: 외래 키(Foreign Key)
댓글은 아무 데나 달려있으면 안 되죠? 반드시 ‘어떤 글’에 달린 댓글인지 표시가 되어야 해요. 그래서 우리는 댓글 창고에 ‘parent_id’라는 이름표를 붙여줄 거예요. 이 번호는 게시글의 번호와 똑같아야 한답니다. 이렇게 데이터끼리 서로 연결되는 것을 ‘관계형 데이터’라고 불러요.
2. 댓글 소환과 저장 주문서 (코드)
게시글 아래에 댓글 목록을 보여주고, 새로운 댓글을 저장하는 코드를 작성해 봅시다.
<?php
// view.php 중 일부 (게시글 상세 보기 화면)
$post_id = $_GET['id']; // 현재 보고 있는 글 번호
// 1. 해당 글에 달린 댓글만 쏙쏙 가져오기
$comment_sql = "SELECT * FROM comments WHERE parent_id = $post_id ORDER BY id ASC";
$comment_result = mysqli_query($conn, $comment_sql);
?>
<!-- 댓글 입력창 -->
<form action="comment_ok.php" method="POST">
<input type="hidden" name="parent_id" value="<?php echo $post_id; ?>">
<textarea name="comment_text" placeholder="마법 같은 의견을 남겨주세요!"></textarea>
<button type="submit">댓글 마법 발동</button>
</form>
<!-- 댓글 목록 출력 -->
<div class="comment-list">
<?php while($c_row = mysqli_fetch_assoc($comment_result)) { ?>
<p><strong><?php echo $c_row['writer']; ?>:</strong> <?php echo $c_row['content']; ?></p>
<?php } ?>
</div>
3. hidden 타입: “비밀 주머니에 담아 보내요”
이번 코드에서 type="hidden"이라는 새로운 마법이 나왔죠? 이건 사용자의 눈에는 보이지 않지만, 서버로는 몰래 전달되는 데이터예요. “이 댓글은 $post_id번 글에 달리는 거야!”라는 정보를 사용자 몰래 배달해주는 아주 똑똑한 주머니랍니다.

4. 아이들과 함께하는 ‘포스트잇 꼬리표’ 놀이
스케치북에 큰 그림(게시글)을 몇 개 그려보세요. 그리고 작은 포스트잇(댓글)에 짧은 메시지를 써서 그림 옆에 붙이게 하세요. “포스트잇이 떨어져도 이 그림 옆에 다시 붙이려면 그림 번호를 적어둬야겠지?”라고 물어보며 데이터 연결(Mapping)의 개념을 설명해 주세요. 아이는 댓글이 독립적인 존재가 아니라 특정 글에 소속된 존재임을 자연스럽게 알게 됩니다.
마치며: 함께 소통하는 마법 학교
이제 우리 학교 게시판은 혼자서만 떠드는 공간이 아니라, 친구들의 응원과 질문이 넘쳐나는 활기찬 광장이 되었습니다! 정말 멋진 변화예요. 다음 시간에는 우리 마법사들이 올린 글 중에서 가장 인기가 많은 글을 찾아내는 ‘조회수와 좋아요 마법’을 배워보겠습니다. 다음 시간에 만나요!



