6. PHP 게시판 만들기, view 제작 1
주의: 본 게시판은 보안을 생각하지 않고 만들어졌으므로 실제로 사용되어서는 안되는 코드입니다.
공부할 때 게시판이 이처럼 동작한다는 정도로만 이해해주세요.
이번에는 글을 보여주는 view.php를 제작할 차례입니다.
먼저 위의 파일을 받아서 view.php 부분을 봅시다.
<?php
require_once("../dbconfig.php");
$bNo = $_GET['bno'];
$sql = 'select b_title, b_content, b_date, b_hit, b_id from board_free where b_no = ' . $bNo;
$result = $db->query($sql);
$row = $result->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>자유게시판 | Kurien's Library</title>
<link rel="stylesheet" href="./css/normalize.css" />
<link rel="stylesheet" href="./css/board.css" />
</head>
<body>
<article class="boardArticle">
<h3>자유게시판 글쓰기</h3>
<div id="boardView">
<h3 id="boardTitle"><?php echo $row['b_title']?></h3>
<div id="boardInfo">
<span id="boardID">작성자: <?php echo $row['b_id']?></span>
<span id="boardDate">작성일: <?php echo $row['b_date']?></span>
<span id="boardHit">조회: <?php echo $row['b_hit']?></span>
</div>
<div id="boardContent"><?php echo $row['b_content']?></div>
</div>
</article>
</body>
</html>
view.php는 데이터베이스에 있던 데이터를 화면에 보여주는 간단한 코드입니다.
http://kurien.co.kr/project/board/ 에서 글을 하나 클릭해보면 알겠지만,
단순히 view.php로 끝나는게 아니라 http://kurien.co.kr/project/board/view.php?bno=43처럼 bno이라는 값이 존재합니다.
이 bno을 가지고 데이터베이스의 글을 검색, 출력하게 됩니다.
먼저 $bNo = $_GET['bno'];을 적어서 url 뒤의 bno의 값을 변수에 입력합니다.
그 다음 sql문을 만드는데, 여기서 $bNo의 값을 이용해서 하나의 데이터를 지정해줘야합니다.
여기서 b_no은 primary key(기본 키) 였으니 중복되는 값이 없을 것이고, 여기서 지정되는 번호는 단 하나의 게시물을 출력하겠죠?
$sql을 가지고 쿼리를 전송하고, fetch_assoc을 통해서 데이터를 받아옵니다.
여기서 mysqli_fetch_array(), mysqli_fetch_assoc(), mysqli_fetch_row()라는 세 가지의 방식이 있는데요.
세 가지의 차이를 알아봅시다.
먼저 fetch_array()를 통해서 $row라는 변수에 데이터를 받아오게 되면 $row['b_no'] 혹은 $row[0]으로 결과를 출력할 수 있습니다.
fetch_assoc()의 경우에는 $row['b_no']만 가능하고, fetch_row는 $row[0]으로만 출력이 가능합니다.
저는 주로 fetch_assoc()을 쓰는데, fetch_array()의 경우 쓸대없이 하나의 데이터를 두개의 결과로 표시해서 메모리가 낭비 되서 그렇구요,
또 하나의 이유는 fetch_row()를 사용할 경우엔 어떤 데이터를 가리키는지를 쉽게 알기 힘듭니다.
이 부분도 취향이니 원하는대로 사용하시면 되겠습니다.
데이터는 $row 변수에 받아 뒀으니 이제 출력만 남았습니다.
CSS 조금과 HTML을 이용해서 대충 폼을 만들고 거기에 <?php echo $row[키]?>를 통해서 출력했습니다.
입력을 해보신분이 있다면 textarea에서 엔터를 쳤을 때 이상한 점을 발견할 수 있을겁니다.
분명 엔터를 여러번 쳤는데도 view.php에서 보면 띄어쓰기만 한번 되어있는 것처럼 보일꺼에요.
이유를 설명해보자면, 혹시 html을 작성할 때 엔터를 여러번 쳐 본적이 있으신가요?
아무리 엔터를 쳐도 띄어쓰기 한번만 되는 걸 알 수 있습니다.
<br>을 쳐야만 브라우저에서 엔터를 친 것과 같은 효과를 얻을 수 있죠.
여기서도 마찬가지로 엔터를 치기 위해서는 <br>을 사용해야 하지만,
HTML을 모르는 사용자에게 엔터를 쓸 때마다 <br>을 사용하라고할 수 없겠죠.
이런 경우에는 PHP 함수 중 하나인 nl2br이라는 함수를 사용하면 됩니다.
이 부분은 아직 위에 올려둔 파일에는 적용하지 않았구요,
일단은 게시판 형태를 먼저 갖추고 난 뒤에 수정할 부분입니다.
오늘은 여기까지 적도록 하겠습니다!
진행사항이 궁금하시다면 http://kurien.dothome.co.kr로 접속해주세요~
궁금한 사항은 댓글에 남겨주세요!
'Project > PHP 게시판' 카테고리의 다른 글
8. PHP 게시판 만들기, write 제작 4 (16) | 2015.04.08 |
---|---|
7. PHP 게시판 만들기, write 제작 3 (14) | 2015.04.08 |
5. PHP 게시판 만들기, write 제작 2 (36) | 2015.04.02 |
4. PHP 게시판 만들기, write 제작 1 (13) | 2015.03.31 |
3. PHP 게시판 만들기, list 제작 1 (80) | 2015.03.31 |