반응형

기본 데이터베이스 MySQL 구성

blog 라는 데이터 베이스 안에 booklist라는 테이블이 있습니다.

CREATE TABLE booklist(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(20),
author VARCHAR(20),
date DATE,
PRIMARY KEY(id)
);

위의 명령어로 테이블을 생성하였고 

요러한 형태입니다.

필드는 아이디, 제목, 작가, 날짜 순으로 되어있습니다.

 

PHP와 MySQL 연동

MySQL과 연동시켜줄 PHP파일을 만들어주었습니다.

<?php
$server = "localhost:3306";
$user = "root";
$password = "로그인할 때 쓰는 비밀번호";
$dbname = "blog";

$conn = new mysqli($server, $user, $password, $dbname);

if($conn->connect_error) echo "<h2>접속에 실패하였습니다.</h2>";
else echo "<h2>접속에 성공하였습니다.</h2>";
?>

접속에 성공하였다면 접속에 성공하였습니다. 를 실패하였다면 접속에 실패하였습니다. 를 출력하게 만들었습니다.

정상적으로 접속에 성공한 것을 확인할 수 있습니다.

 HTML 페이지 구성하기

코드 구성

<!DOCTYPE html>
<html>
    <head>
        <title>도서 추가하는 페이지</title>
        <meta charset="utf-8">
    </head>
    <body>
        <h2>도서 추가하기</h2>
        <h3>등록할 책 정보를 입력해주세요</h3><hr>
        <form action="check.php" method="post">
            <table>
                <tr>
                    <td>책 이름을 입력해주세요</td>
                    <td><input type="text" name="title"></td>
                </tr>
                <tr>
                    <td>작가명을 입력해주세요</td>
                    <td><input type="text" name="author"></td>
                </tr>
                <tr>
                    <td>출판된 날짜 입력해주세요</td>
                    <td><input type="date" name="date"></td>
                </tr>
            </table>
            <input type="submit" value="도서 등록">
            <input type="reset" value="다시 입력하기">
        </form>
    </body>
</html>

 

위와 같이 코드를 구성하였습니다 form을 통해 check.php와 연결하고 post를 통해 데이터를 주고받게 됩니다.

HTML 페이지 화면

웹 페이지에서는 위와같이 구성이 됩니다.

PHP 구성하기

check.php 코드 구성

<?php
# db 접속
// connect.php 파일의 내용을 그대로 가져옴.
include_once("connect.php");

# form 데이터 읽어오기
$title = $_POST["title"];
$author = $_POST["author"];
$date = $_POST["date"];

echo "<h3>추가할 책의 제목은 {$title}, 작가명은 {$author}, 출판된 날짜는 $date</h3>";

# insert sql 작성
$sql = "INSERT INTO booklist (title, author, date) VALUES('$title', '$author', '$date')";

if($conn->query($sql))echo "<h3>도서등록 성공</h3>";
else echo "<h3>도서등록 실패</h3>";

?>

check.php는 위와 같이 구성되어 있습니다. 미리 만들어두었던 connect.php를 이용하여 접속을 하고 POST로 데이터를 받아온 후 화면에 출력해줍니다. 그 후 MySQL의 INSERT 구문을 사용하여 입력받은 책의 정보를 booklist 테이블에 등록합니다. 

id는 자동 증가로 설정을 해 놓았기 때문에 id필드를 제외한 필드값의 데이터를 입력합니다. 

데이터베이스에 정상적으로 등록이 되었다면 "도서등록 성공"을 실패하였다면 "도서등록 실패"를 출력합니다.

check.php 출력화면

HTML에서 입력한 화면

CHECK.PHP에서 출력되는 화면

정상적으로 등록이 되었다고 합니다. MySQL에서 확인해보도록 하겠습니다.

입력한 데이터가 정확히 booklist 테이블에 저장된 모습을 확인할 수 있습니다.

도서 목록 조회하기

HTML 수정

<!-- ...생략됨 -->
</form>
<form action="select.php" method="post">
    <input type="submit" value="도서 목록 조회">
</form>

위에서 만든 html 파일의 </form> 아래에 도서 목록 조회하는 php 파일로 가도록 버튼을 하나 만들어줍니다.

아래에 도서 목록을 조회하는 버튼이 하나 더 생기게 됩니다.

 

select.php 구성

<?php

include_once("connect.php");

// booklist에 있는 모든 데이터를 가져옴
$sql = "SELECT * FROM booklist";

// 쿼리 실행결과로 레코드 셋 반환
$result = $conn->query($sql);

if(isset($result) && $result->num_rows >0){
    while($row = $result->fetch_assoc()){
        echo $row['id']."번 책의 데이터입니다.";
        echo "책의 제목 : ".$row['title']."<br>";
        echo "작가의 이름 : ".$row['author']."<br>";
        echo "출판된 날짜 : ".$row['date']."<hr>";
    }
} else echo "검색된 데이터가 없습니다.";

?>

마찬가지로 mysql과 연동을 먼저하고 SELECT * FROM booklist 쿼리문으로 booklist에 있는 모든 데이터를 가져옵니다.

쿼리문을 실행한 결과를 $result에 담고 반환 값이 있다면 책 리스트를 순차적으로 출력합니다. 검색된 데이터(책의 정보)가 없다면 검색된 데이터가 없다고 출력해줍니다.

select.php 출력화면



정상적으로 책의 목록이 출력되는 것을 볼 수 있습니다.

아래 화면은 책의 데이터들을 조금 더 넣고 출력한 모습입니다.

책의 데이터도 정상적으로 들어가고 id값도 순차적으로 잘 올라갑니다!

mysql에서 확인해보아도 정상적으로 등록된 모습을 확인할 수 있습니다!!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기