...
728x90
반응형
PHP를 이용하여 게시판과 필요한 기능들 만들기
게시판
PHP 작성하기
<?php
$sql = "SELECT b.boardID, b.boardTitle, m.youName, b.regTime, b.boardView FROM board b JOIN members m ON(b.memberID = m.memberID) ORDER BY boardID DESC LIMIT 10";
$result = $connect -> query($sql);
if($result){
$count = $result -> num_rows;
if($count > 0){
for($i=0; $i<$count; $i++){
$info = $result -> fetch_array(MYSQLI_ASSOC);
echo "<tr>";
echo "<td>".$info['boardID']."</td>";
echo "<td><a href='boardView.php?boardID={$info['boardID']}'>".$info['boardTitle']."</a></td>";
echo "<td>".$info['youName']."</td>";
echo "<td>".date('Y. m. d', $info['regTime'])."</td>";
echo "<td>".$info['boardView']."</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='4'> 선택된 게시글이 없습니다. </td></tr>";
}
}
?>
PHP 정리해보기
- $sql에 board 테이블과 member 테이블을 합쳐 boardID, boardTitle, youName, regTime, boardView에 대한 정보를 가져오는 쿼리문을 저장합니다.
- num_rows를 사용하여 가져온 데이터의 개수를 $count에 저장합니다.
- $count의 개수만큼 for문을 반복시켜 데이터를 html문서상의 테이블에 출력합니다.
게시글 보기
PHP 작성하기
<?php
if (isset($_GET['boardID'])) {
$boardID = $_GET['boardID'];
$sql = "SELECT b.boardContents, b.boardTitle, m.youName, b.regTime, b.boardView FROM board b JOIN members m ON(m.memberID = b.memberID) WHERE b.boardID = {$boardID}";
$result = $connect->query($sql);
if ($result) {
$info = $result->fetch_array(MYSQLI_ASSOC);
echo "<tr><th>제목</th><td>" . $info['boardTitle'] . "</td>";
echo "<tr><th>등록자</th><td>" . $info['youName'] . "</td>";
echo "<tr><th>등록일</th><td>" . date('Y. m. d', $info['regTime']) . "</td>";
echo "<tr><th>조회수</th><td>" . $info['boardView'] . "</td>";
echo "<tr><th>내용</th><td>" . $info['boardContents'] . "</td>";
} else {
echo "<tr><td colspan='4'>존재하지 않은 게시물입니다.</td></tr>";
}
} else {
echo "<tr><td colspan='4'>존재하지 않는 게시물입니다.</td></tr>";
}
?>
<div class="board__btn">
<a href="boardModify.php?boardID=<?=$_GET['boardID'] ?>" class="btnStyle3">수정하기</a>
<a href="boardRemove.php?boardID=<?=$_GET['boardID'] ?>" class="btnStyle3" onclick="return confirm('정말 삭제하시겠습니까?', '')">삭제하기</a>
<a href="board.php" class="btnStyle3">목록보기</a>
</div>
PHP 정리해보기
- isset() 함수는 변수가 설정되어 있는지 아닌지를 판별합니다.
- isset()를 이용하여 $_GET['board']가 사용 가능한지를 판별하고 사용 가능하다면 $sql에 저장되어 있는 쿼리문을 통해 가져온 데이터들을 html문서상의 테이블에 출력합니다.
- $_GET['boardID']가 사용 불가능한 상태라면 존재하지 않는 게시물임을 적어줍니다.
게시글 작성
PHP 작성하기
<?php
include "../connect/connect.php";
include "../connect/session.php";
$boardTitle = $_POST['boardTitle'];
$boardContents = $_POST['boardContents'];
$boardView = 1;
$regTime = time();
$memberID = $_SESSION['memberID'];
$boardTitle = $connect -> real_escape_string($boardTitle);
$boardContents = $connect -> real_escape_string($boardContents);
$sql = "INSERT INTO board(memberID, boardTitle, boardContents, boardView, regTime) VALUES('$memberID', '$boardTitle', '$boardContents', '$boardView', '$regTime')";
$connect -> query($sql);
?>
<script>
location.href = "board.php";
</script>
PHP 정리해보기
- POST 방식으로 boardTitle, boardContents, boardView, regTime, memberID를 가져와 각각의 변수에 저장합니다.
- 각각의 VALUES 데이터를 등록하는 쿼리문을 $sql에 저장하고 전송합니다.
- 스크립트를 통해 board.php로 주소를 이동합니다.
게시글 수정
PHP 작성하기
<?php
$boardID = $_GET['boardID'];
$sql = "SELECT boardID, boardTitle, boardContents FROM board WHERE boardID = {$boardID}";
$result = $connect -> query($sql);
if($result){
$info = $result -> fetch_array(MYSQLI_ASSOC);
echo "<div style='display:none'><label for='boardID'>번호</label><input type='text' id='boardID' name='boardID' class='inputStyle' value='".$info['boardID']."'></div>";
echo "<div><label for='boardTitle'>제목</label><input type='text' id='boardTitle' name='boardTitle' class='inputStyle' value='".$info['boardTitle']."'></div>";
echo "<div><label for='boardContents'>내용</label><textarea name='boardContents' id='boardContents' rows='20' class='inputStyle'>".$info['boardContents']."</textarea></div>";
}
?>
PHP 정리해보기
- GET방식으로 boardID 데이터를 가져와 저장합니다.
- 해당 boardID와 일치하는 boardID의 데이터(boardID, boardTitle, boardContents)를 불러오는 쿼리문을 $sql에 저장하고 전송합니다.
- $info에 가져온 데이터를 배열 형식으로 저장하고, html문서상의 input박스에 출력합니다.
<?php
include "../connect/connect.php";
include "../connect/session.php";
$boardID = $_POST['boardID'];
$boardTitle = $_POST['boardTitle'];
$boardContents = $_POST['boardContents'];
$boardTitle = $connect -> real_escape_string($boardTitle);
$boardContents = $connect -> real_escape_string($boardContents);
$memberID = $_SESSION['memberID'];
$sql = "UPDATE board SET boardTitle = '{$boardTitle}', boardContents = '{$boardContents}' WHERE boardID = '{$boardID}'";
$connect -> query($sql);
?>
<script>
location.href = "board.php";
</script>
PHP 정리해보기
- POST방식으로 수정한 내용들을 받아와 저장합니다.
- board 테이블에 있는 데이터중 받아온 boardID와 같은 boardID를 가진 데이터의 각각의 내용을 새로 받아온 내용으로 변경하는 쿼리문을 $sql에 저장하고 전송합니다.
- 스크립트를 사용해 board.php로 주소를 이동합니다.
게시글 삭제
PHP 작성하기
<?php
include "../connect/connect.php";
include "../connect/session.php";
$boardID = $_GET['boardID'];
$boardID = $connect -> real_escape_string($boardID);
$sql = "DELETE FROM board WHERE boardID = {$boardID}";
$connect -> query($sql);
?>
<script>
location.href = "board.php";
</script>
PHP 정리해보기
- GET방식으로 boardID를 가져와 저장합니다.
- 가져온 boardID와 같은 boardID를 가진 데이터를 board테이블에서 삭제하는 쿼리문을 $sql에 저장하고 전송합니다.
- 스크립트를 사용해 board.php로 주소를 이동합니다.
728x90
반응형