[PHP] Book Blog(Books) 만들기 2_도서등록 / 자세히보기 / 수정 / 삭제

2022. 6. 2. 15:58·Stack/PHP

* 등록

create.php

<?php include_once 'include/header.php' ?>
<div id="write_book" class="inner">
        <h2>도서등록</h2>
        <h3>새로운 도서를 등록하세요.</h3>
        <form action="process/create_process.php" method="post">
            <table>
                <tr>
                    <td>글쓴이</td>
                    <td><input type="text" name="writer" required></td>
                </tr>
                <tr>
                    <td>출판사</td>
                    <td><input type="text" name="publisher" required></td>
                </tr>
                <tr>
                    <td>가격</td>
                    <td><input type="text" name="price" required id="priceInput"></td>   <!-- type number로 하거나 -->
                </tr>
                <tr>
                    <td>출판일</td>
                    <td><input type="text" name="bookdate"></td>
                </tr>
                <tr>
                    <td>제목</td>
                    <td><input type="text" name="title"></td>
                </tr>
                <tr>
                    <td>책내용</td>
                    <td><textarea name="desc" id="desc" cols="30" rows="10"></textarea></td>
                </tr>
                <tr>
                    <td colspan="2">
                        <button type="submit">도서등록</button>
                        <button type="reset">취소</button>
                    </td>
                </tr>
            </table>
        </form>
        <script>
            let priceInput = document.querySelector("#priceInput");
            priceInput.addEventListener('input', function(){
                if(isNaN(Number(priceInput.value))) {
                    alert("가격은 숫자만 입력해주세요.");
                    priceInput.value="";
                }
            })
        </script>
</div>
<?php include_once 'include/footer.php' ?>

 

process/create_process.php

<?php
    // post 전송으로 넘어온 데이터는 슈퍼글로벌 $_POST변수가 배열형태로 받는다.
     $conn = mysqli_connect('localhost','root','0000','test');
     $query = "insert into books(`writer`, `title`, `publisher`, `price`, `bookdate`, `desc`)
     values('{$_POST['writer']}', '{$_POST['title']}', '{$_POST['publisher']}', {$_POST['price']}, '{$_POST['bookdate']}', '{$_POST['desc']}')";
     $result = mysqli_query($conn, $query);
     echo $query;
    if($result){
        echo "게시글을 작성했습니다.";
    } else {
        echo "게시글 작성이 실패했습니다.";
    }
    header('Location: ../index.php');
?>

 

 

 

* 자세히보기

detail_t.php

<?php include_once 'include/header.php' ?>
<?php 
    $bookid = $_GET['id'];
    $conn = mysqli_connect('localhost','root','0000','test');
    $query = "select * from books where id={$bookid}";
    $result = mysqli_query($conn, $query);
    $row = mysqli_fetch_array($result);
    // var_dump($row);
?>
    <div id="write_book" class="inner">
        <h2>도서 자세히보기</h2>
        <h3>도서 내용입니다.</h3>
        <table>
            <tr>
                <td>글쓴이</td>
                <td><?=$row['writer']?></td>
            </tr>
            <tr>
                <td>출판사</td>
                <td><?=$row['publisher']?></td>
            </tr>
            <tr>
                <td>출판일자</td>
                <td><?=$row['bookdate']?></td>
            </tr>
            <tr>
                <td>제목</td>
                <td><?=$row['title']?></td>
            </tr>
            <tr>
                <td>내용</td>
                <td><?=$row['desc']?></td>
            </tr>
            <tr>
                <td colspan="2">
                    <form action="edit_t.php" method="post">
                        <input type="hidden" value="<?=$_GET['id']?>" name="id">
                        <button type="submit">수정</button>
                    </form>
                    
                    <form action="process/delete_process.php" method="post">
                        <input type="hidden" value="<?=$_GET['id']?>" name="id">
                        <button type="submit">삭제</button>
                    </form>
                </td>
            </tr>
        </table>
    </div>
<?php include_once 'include/footer.php' ?>

 

 

 

 

* 수정

edit_t.php

<?php include_once 'include/header.php' ?>
<?php
        $bookid = $_POST['id'];
        $conn = mysqli_connect('localhost','root','0000','test');
        $query = "select * from books where id={$bookid}";
        $result = mysqli_query($conn, $query);
        $row = mysqli_fetch_array($result);
?>
<div id="write_book" class="inner">
        <h2>도서수정</h2>
        <h3>내용을 변경하세요</h3>
        <form action="process/edit_process_t.php" method="post">
            <table>
                <tr>
                    <td>글쓴이</td>
                    <td><input type="text" name="writer" required value="<?=$row['writer']?>"></td>
                </tr>
                <tr>
                    <td>출판사</td>
                    <td><input type="text" name="publisher" required value="<?=$row['publisher']?>"></td>
                </tr>
                <tr>
                    <td>가격</td>
                    <td><input type="text" name="price" required id="priceInput" value="<?=$row['price']?>"></td>   <!-- type number로 하거나 -->
                </tr>
                <tr>
                    <td>출판일</td>
                    <td><input type="text" name="bookdate" value="<?=$row['bookdate']?>"></td>
                </tr>
                <tr>
                    <td>제목</td>
                    <td><input type="text" name="title" value="<?=$row['title']?>"></td>
                </tr>
                <tr>
                    <td>책내용</td>
                    <td><textarea name="desc" id="desc" cols="30" rows="10"><?=$row['desc']?></textarea></td>
                </tr>
                <tr>
                    <td colspan="2">
                        <input type="hidden" value="<?=$bookid?>" name="id">
                        <button type="submit">수정</button>
                        <button type="reset">취소</button>
                    </td>
                </tr>
            </table>
        </form>
        <script>
            let priceInput = document.querySelector("#priceInput");
            priceInput.addEventListener('input', function(){
                if(isNaN(Number(priceInput.value))) {
                    alert("가격은 숫자만 입력해주세요.");
                    priceInput.value="";
                }
            })
        </script>
</div>
<?php include_once 'include/footer.php' ?>

 

process/edit_process_t.php

<?php
    // var_dump($_POST);
    // var_dump($_POST['id']);

    // POST전송으로 전송된 데이터는 $_POST가 가지고 있음
    $conn = mysqli_connect('localhost','root','0000','test');
    // // 데이터 수정은 update문 사용
    // // update 테이블 이름
    // // set 컬럼명 = "변경될 값"
    // // where 컬럼
    $query = "update books 
    set `writer` = '{$_POST['writer']}',
    `title` = '{$_POST['title']}',
    `publisher` = '{$_POST['publisher']}',
    `price` = '{$_POST['price']}',
    `bookdate` = '{$_POST['bookdate']}',
    `desc` = '{$_POST['desc']}'
    where `id` = '{$_POST['id']}'
    ";
    echo $query;
    $result = mysqli_query($conn, $query);
    if($result) { echo "성공"; }
    else { echo "실패"; }
    header('Location:../index.php');
?>

 

 

 

* 삭제

process/delete_process.php

<?php
    // var_dump($_POST);
    echo $_GET['id'];
    $conn = mysqli_connect('localhost','root','0000','test');
    $query = "delete from books where id={$_POST['id']}";
    $result = mysqli_query($conn, $query);
    if($result) {
        echo "성공";
    } else {
        echo "실패";
    }
    header('Location:../index.php');
?>

'Stack > PHP' 카테고리의 다른 글

[PHP] 간단한 신간도서 소개페이지 구현 과제  (0) 2022.07.06
[PHP] Book Blog(Books) 만들기 3_베스트셀러  (0) 2022.06.02
[PHP] Book Blog(Books) 만들기_첫 화면 / 회원가입 / 로그인 / 로그아웃 / 검색  (0) 2022.06.02
[PHP] 이미지 업로드  (0) 2022.06.02
[PHP] 쿠키 / 세션  (0) 2022.05.30
'Stack/PHP' 카테고리의 다른 글
  • [PHP] 간단한 신간도서 소개페이지 구현 과제
  • [PHP] Book Blog(Books) 만들기 3_베스트셀러
  • [PHP] Book Blog(Books) 만들기_첫 화면 / 회원가입 / 로그인 / 로그아웃 / 검색
  • [PHP] 이미지 업로드
7ingout
7ingout
  • 7ingout
    Hello, 7ingout world!
    7ingout
  • 전체
    오늘
    어제
    • 분류 전체보기 (205)
      • Project (5)
      • Stack (173)
        • React (40)
        • JavaScript (50)
        • TypeScript (14)
        • HTML (11)
        • CSS (31)
        • Spring (9)
        • PHP (15)
        • SQL (3)
        • Python (0)
      • ETC (9)
      • Design (13)
        • Illustrator (6)
        • Photoshop (7)
      • Articloid (4)
        • 7ingout (4)
  • 공지사항

    • ☻
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
7ingout
[PHP] Book Blog(Books) 만들기 2_도서등록 / 자세히보기 / 수정 / 삭제
상단으로

티스토리툴바