본문 바로가기
성공
👥
총 방문자
📖
0개 이상
총 포스팅
🧑
오늘 방문자 수
📅
0일째
블로그 운영

여러분의 방문을 환영해요! 🎉

다양한 개발 지식을 쉽고 재미있게 알려드리는 블로그가 될게요. 함께 성장해요! 😊

프로젝트/php 미니 프로젝트

[php] 게시판을 만들고 댓글 기능까지 구현해보자

by 꽁이꽁설꽁돌 2024. 5. 16.
728x90
반응형

목차

  1. 완성된 모습
  2. 데이터 구조
  3. 게시판 테이블 코드 구현 
  4. 댓글 테이블 코드 구현

 

완성된 모습

이런식으로 todolist를 작성할 시 게시판이 생기게 된다.

 

 

이런식으로 다른 이의 todolist가 나오고 댓글을 작성할 수 있다.

 

 

데이터 구조

 

 

userchattable(채팅 관리 데이터 베이스)

SID unique key
User_page_id varchar
Login_chat_id varchar
Chat_message varchar
Chat_date DATETIME

 

userboardtable(게시판 관리 데이터 베이스)

SID unque key
Login_board_id varchar
Create_board_date DATETIME
Board_chat integer
Board_thumb ineger
Board_view integer

 

아이디를 통해 연관된 데이터를 저장하고 데이터에 접근하였다.

 

게시판 테이블 코드 구현 

cpp
 <table class="list-table">
            <thead>
                <tr>
                    <th width="70">번호</th>
                    <th width="110">카테고리</th>
                    <th width="120">글쓴이</th>
                    <th width="500">작성일</th>
                    <th width="100">추천수</th>
                    <th width="100">조회수</th>
                </tr>
            </thead>
            <tbody>
                <?php
        // 데이터베이스에서 가져온 각각의 레코드에 대해 반복하여 출력
        $db = mysqli_connect('localhost', 'root', '', 'userdata') or die('Unable to connect. Check your connection parameters.');
        $sql = mysqli_query($db, "SELECT * FROM userboardtable ORDER BY SID DESC LIMIT 0,10");
        $num =1;
        while ($board = mysqli_fetch_assoc($sql)) {
            ?>
                <tr>
                    <td width="70"><?php echo $num ?></td>
                    <td width="110">
                        <?php echo "<a href='TodoView.php?Login_id={$_SESSION['Login_id']}&Login_board_id={$board['Login_board_id']}'/>"?><?php echo $board['Board_category']; ?>
                    </td>
                    <td width="120"><?php echo $board['Login_board_id']; ?></td>
                    <td width="500"><?php echo $board['Create_board_date']; ?></td>
                    <td width="100"><?php echo $board['Board_thumb']; ?></td>
                    <td width="100"><?php echo $board['Board_view']; ?></td>
                </tr>
                <?php
                $num++;
        }
        ?>
            </tbody>
        </table>

 

링크를 걸어 그 투두리스트 뷰 사이트로 이동할 수 있게한다.

 

댓글 테이블 코드 구현

cpp
<?php

session_start(); 
$db = mysqli_connect('localhost', 'root', '', 'userdata') or die('Unable to connect. Check your connection parameters.');

if(isset($_POST['submit'])){
    $category = 'To-do';
    $pageid = $_GET['Login_board_id'];  //게시글 아이디
    $id = $_SESSION['Login_id'];  //로그인한 아이디
    $chat = $_POST['comment'];
    $time = date("Y-m-d H:i:s");
    $query = "INSERT INTO userchattable (User_page_id, Login_chat_id, Login_chat_category, Chat_message, Chat_date) VALUES ( '$pageid', '$id','$category', '$chat', '$time')";
    mysqli_query($db, $query) or die(mysqli_error($db));
    header("Location: TodoView.php?Login_board_id={$_GET['Login_board_id']}");
    exit;
}
?>


  <div>
            <?php
          $User_page_id = $_GET['Login_board_id']; // 게시글 아이디
          $login_chat_category = 'To-do'; //  게시글의 카테고리
          
          $query = "SELECT * FROM userchattable WHERE User_page_id='$User_page_id' AND Login_chat_category='$login_chat_category'";  
          //카테고리와 게시글 아이디가 일치하는 데이터만
          $result = mysqli_query($db, $query);
            while ($row = mysqli_fetch_assoc($result)) {
              
                echo "<div class='chat-title'><div>{$row['Login_chat_id']}</div>";
                echo "<div>{$row['Chat_date']}</div></div>";
                echo "<div class='chat-wrap'>";
                echo "<div>{$row['Chat_message']}</div>";
                echo "</div>";
            }
            ?>
        </div>
        <div class="form-wrap">
            <button class="comment-button" onclick="toggleForm()">댓글 쓰기</button>

            <div class="comment-form">
                <form id="commentForm" method="post" action="">
                    <textarea name="comment" placeholder="댓글을 입력하세요"></textarea>
                    <button class="addBtn" name="submit" type="submit">등록</button>
                </form>
            </div>
        </div>
    </div>

 

댓글을 쓰면 데이터에 추가가 되고 그 댓글 데이터에 접근해서 데이터를 가져오는 코드이다.

 

반응형