* 등록
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 |