본문 바로가기
프로젝트/php 미니 프로젝트

[php] 투두리스트 데이터를 추가해보자

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

목차

     

    완성된 모습

    투두 리스트를 구현해 mysql 데이터에 넣어주었다..

     

     

    데이터가 잘 들어간 모습

     

     

    투두리스트 페이지

    <?php
    session_unset();
    session_start(); 
    // 데이터베이스 연결
    $db = mysqli_connect('localhost', 'root', '', 'userdata') or die ('Unable to connect. Check your connection parameters.');
    
    // 추가 버튼이 클릭되었을 때 데이터 삽입
    if(isset($_POST['submit'])){
        $task = $_POST['toDo'];
        $category = $_POST['Category'];
        $id = $_SESSION['Login_id'];
        $time = date("Y-m-d H:i:s");
        $query = "INSERT INTO todotable (Login_todo_id, User_category, User_task, Create_date) VALUES ('$id','$category', '$task', '$time')";
        mysqli_query($db, $query) or die(mysqli_error($db));
        header("Location:UserWriteTodoList.php");
        exit;
    }
    
    ?>
    
    <!doctype html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Developer-community-login-page</title>
        <link rel="stylesheet" href="reset.css" />
        <link rel="stylesheet" href="UserWriteTodoList.css" />
        <script type="text/javascript" src="TodoAdd.js"></script>
    </head>
    
    <body>
        <header>
            <div class="header-wrap">
                <div class="main-log">
                    <img class="header-img" src="./img/sejonglogo.png" alt="LogoImg">
                </div>
                <div>
                    <?php
                    // 세션에 저장된 데이터 확인
                    if(isset($_SESSION['Login_id'])) {
                        echo $_SESSION['Login_id'];
                    } else {
                        echo "세션에 로그인 정보가 없습니다.";
                    }
                    ?>
                </div>
            </div>
        </header>
        <div class="content-wrap">
            <div class="login-wrap">
                <div class="login-head">
                    Todo-List
                </div>
                    <div class="input-wrap">
                        <input type="text" name="Category" placeholder="카테고리">
                        <input type="text" name="toDo" placeholder="할 일 추가하기">
                        <button type="submit" class="addButton" name="submit">추가</button>
                    </div>
                <?php
                // 데이터베이스에서 해당 사용자의 투두리스트 불러오기
                $query = "SELECT * FROM todotable WHERE Login_todo_id='{$_SESSION['Login_id']}'";
                $result = mysqli_query($db, $query);
                // 투두리스트 항목 출력
                while ($row = mysqli_fetch_assoc($result)) {
                    echo "<div class='toDoList'>";
                    echo "<input type='checkbox' name='completed[]'>";
                    echo "<span>{$row['User_task']}</span>";
                    echo "<div class='delete'>";
                    echo "<a href='DeleteTask.php?num={$row['User_task']}'>삭제</a>";
                    //데이터 삭제 버튼구현 방안
                    echo "</div>";
                    echo "</div>";
                }
                ?>
                <img class="content-img" src="./img/sejongwhite.png" alt="LogoImg">
            </div>
    
    </html>

    주요 로직만 참고하고자 코드를 많이 생략했다.

     

    삭제하기 위한 php링크 (DeleteTask.php)

    <?php
    session_start();
    
    // 데이터베이스 연결
    $db = mysqli_connect('localhost', 'root', '', 'userdata') or die ('Unable to connect. Check your connection parameters.');
    
    // 삭제할 항목의 User_task 값을 GET 방식으로 받아옵니다.
    $task_to_delete = $_GET['num'];
    
    // 해당 User_task 값을 가진 레코드를 데이터베이스에서 삭제합니다.
    $query = "DELETE FROM todotable WHERE User_task='$task_to_delete' AND Login_todo_id='{$_SESSION['Login_id']}'";
    mysqli_query($db, $query) or die(mysqli_error($db));
    header("Location:UserWriteTodoList.php");
    exit;
    
    ?>

     

    삭제하기 위한 로직으로 그 링크에 접속해서 데이터를 삭제해준 후 header로 리다이렉션 해준다.

    반응형