본문 바로가기
Web/Dev

PHP Mysql 게시판 만들기 - 1

by 09337 2021. 3. 25.

DB설정 (내가 지정한 DB명은 20210318, table명은 board 이다.)

idx에 AUTO_INCREMENT를 준 이유는 자동으로 번호를 증가시키기 위함이다.

 

index.php 코드이다.

보통 메인 페이지를 index.php 혹은 index.html로 설정하는데, 나중에 로그인/회원가입 구현 페이지도 작성할 것이라면 해당 페이지는 main.php 정도로 작성해주는게 편하다. (로그인 페이지를 index.php로 구현하기 때문)

<?php
	$db = mysqli_connect('127.0.0.1', 'root', '', '20210318'); //('본인 포트번호', 'db계정', 'db비밀번호', 'db명')으로 작성해준다.
	$query ="select * from board";
	$result = $db->query($query); //db에 연결한 정보를 result 변수에 담는다.
?>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>게시판</title>
  <link rel="stylesheet" type="text/css" href="http://cafecj.daum-img.net/cafebackup/css/1/backup.css">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" >
</head>
<body style="margin:2% 25%;padding:19px 29px 19px;border:1px solid #eeeeee;height:auto;">
	<div>
		<a href="/board/main.php">
			<p style="font-size:19px;color:#000000;">자유 게시판</p>
		</a>
		<a href="./write.php">
			<input type="button" style="padding:5px 12px;Color:#ff5656;Background:#ffffff;font-size:14px;border:1px solid #e3e3e3;border-radius:2px;" value="글쓰기">
		</a>
		<div>
			<table style="width:100%;margin-top:10px;border-top:1px solid #b0b0b0;">
				<tr style="background:white;">
					<th>No.</th>
					<th><center>제목</center></th>
					<th><center>작성자</center></th>
					<th><center>작성일</center></th>
				</tr>
				<tbody>
					<?php foreach ($result as $row) { ?> //위에서 담아둔 result 값을 row배열에 넣는다.
					<tr onmouseover="this.style.background='#f8f8f8'" onmouseout="this.style.background='white'" style="border-bottom:1px solid #f7f7f7">
						<td style="font-size:13px;padding:9px 2px;"><a href="./view.php?idx=<?php echo $row['idx']?>"><?php echo $row['idx'] ?></a></td> //나중에 작성할 view.php는 각각의 게시글의 번호를 받아와서 디테일을 보여주는 페이지다. 배열에 담은 페이지넘버(idx)로 연결할 수 있는 <a>태그를 작성해준다.
						<td style="font-size:13px;padding:9px 5px;"><a href="./view.php?idx=<?php echo $row['idx']?>"><center><?php echo $row['subject'] ?></center></a></td>
						<td style="font-size:13px;padding:9px 5px;"><center><?php echo $row['writer'] ?></center></td>
						<td style="font-size:12px;padding:9px 5px;"><center><?php echo $row['reg_date'] ?></center></td>
					</tr>
					<?php
						}
					?>
				</tbody>
			</table>
		</div>
	</div>
	<br>
	<center>
		<div id="search_box"> //게시글 검색 기능 구현 코드
			<form action="search_check.php" method="get">
				<select name="catgo" style="padding:4px;Color:#ff5656;border:1px solid #e3e3e3;border-radius:2px;">
					<option value="subject">제목</option> //value에 담겨있는 값이 get방식으로 나중에 작성할 search_check.php에 넘어간다. search_check.php에서도 제목/글쓴이/내용을 연결하기 위함이다.
					<option value="writer">글쓴이</option>
					<option value="content">내용</option>
				</select>
				<input type="text" name="search" size="40" required="required" style="padding:4px;border:1px solid #e3e3e3;border-radius:2px;">
				<input type="submit" style="padding:5px 12px;Color:#ffffff;Background:#ff5656;border:1px solid #e3e3e3;border-radius:2px;" value="검색"> //button의 type을 submit으로 주면 눌렀을 때, form을 작동한다.
			</form>
		</div>
	</center>
</body>
</html>

게시글을 확인할 수 있고, 게시글을 작성하거나 검색할 수 있게 구현했다.

 

코드에서 <head>나 style은 css이기 때문에 당장은 이해하지 않아도 괜찮다.

 


 

완성한 화면

'Web > Dev' 카테고리의 다른 글

[MySQL] UNION, JOIN 차이  (0) 2022.03.03
[MySQL] JOIN - OUTER JOIN (LEFT+RIGHT)  (0) 2022.03.03
[MySQL] JOIN - LEFT/RIGHT JOIN  (0) 2022.03.02
[MySQL] JOIN - INNER JOIN  (0) 2022.03.02
[MySQL] SUM, MAX, MIN  (0) 2022.02.27

댓글