본문 바로가기
개발

[PHP] 간단한 CRUD 게시판 실습 예제 - 조회

by 정보알려주는언니 2021. 8. 16.

PHP는 환경세팅이 비교적 수월하기 때문에 서버단에 CRUD를 만들기 수월하다.

우선 내가 기획한 간단한 내용은 아래와같다

1. USER의 이름, 내용을 등록한다.
2. 등록시 비밀번호를 사용하여 삭제시 패스워드를 입력하여 validation check를 하도록 한다.
3. 삭제시에는 db delete하지않고 use_yn 컬럼을 만들어 flag값만 업데이트한다.

 

DB 생성


CREATE TABLE `boardTest` (
  `id` int(10) NOT NULL AUTO_INCREMENT, -- pk
  `content` varchar(500) DEFAULT NULL,  -- 글 내용
  `passwd` varchar(20) DEFAULT NULL,    -- 비밀번호
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP, -- 생성일자
  `create_user` varchar(50) DEFAULT NULL,    -- 유저명
  `use_yn` varchar(2) DEFAULT 'Y',    -- 사용여부
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

 

 

리스트 호출


list.php 파일을 만들어 아래와같이 작성했다.

물론 실무에서는 저런식으로 html로 +해서 그리는 방식을 선호하진않지만,

개인프로젝트이기도하고 한두개때문에 php 방식

<?php
    header("Content-Type: text/html; charset=UTF-8");
    header("Cache-Control:no-cache");
    header("Pragma:no-cache");
   
    $host = 'hostname';
    $user = 'username';
    $pw = 'pw';
    $dbName = 'dbname';
    $conn = mysqli_connect($host,$user,$pw,$dbName);

    $sql = "SELECT * FROM boardTest WHERE use_yn = 'Y' ORDER BY create_time DESC";
    $result = mysqli_query($conn, $sql);

    if($result === false){
        echo "FAIL";
    } else {
        $returnData = "";
        while($row = mysqli_fetch_array($result)){
            $returnData .= "<li>";
            $returnData .= "  <p class='writer font-12'>" . $row['create_user'];
            $returnData .= "  <span class='font-12' style='float: right;'>" . $row['create_time'] . "</span></p>";
            $returnData .= "  <div class='text'>";
            $returnData .= "  <p class='ny font-12'>" . $row['content'] . "</p>";
            $returnData .= "  <div class='edit'><a href='javascript:false;' data-idx=".$row['id']." class='del-btn font-12 btn'>삭제</a></div></div>";
            $returnData .= "</li>";
        }
        echo $returnData;
    }
?>

 

DB에서 데이터 호출시 use_yn이 Y인 데이터만 호출하며, 등록일이 최신순으로 조회한다.

SQL 호출시 RETURN값이 true라면 html로 데이터를 만들어 return해준다. 

 

만약 위의 데이터를 여러가지 화면에 노출시켜야한다면 json방식으로 return해주는것도 방법이라고 생각된다. 

json으로 return해준 뒤, script단에서 html로 그려주는것이 더 괜찮았을것같다. 

 

 

 

ajax list 호출


let search_list = function () {
	call_ajax('call_list', null, function (returnData) {
		$('#list_area').html(returnData);
	});
}

ajax 호출을 통해 적절한 html 영역에 해당 html을 노출시켜주면 된다.

 


댓글