ME

[PHP] 게시판 리스트 구현 본문

웹개발/PHP

[PHP] 게시판 리스트 구현

본캐 2022. 12. 28. 08:16

 

 

완성

 

 

 

 

 

 

 

 

1.  DB 테이블 생성

 

CREATE TABLE board (

idx int AUTO_INCREMENT,
title varchar(20),
name varchar(20),
memo text,
date varchar(20),
PRIMARY KEY(idx)

);

 

위 SQL 문을 입력해 테이블을 생성해주자.

 

 

 

mysql> show columns from board;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| idx   | int         | NO   | PRI | NULL    | auto_increment |
| title | varchar(20) | YES  |     | NULL    |                |
| name  | varchar(20) | YES  |     | NULL    |                |
| memo  | text        | YES  |     | NULL    |                |
| date  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

 

 

 

 

 

2. 게시판 폼 생성

 

<?php
include '../db.php';
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <title>board</title>
</head>
<body>
    <h2>게시판</h2>
    <table width=800 border="1">
        <thead>
            <tr align=center>
                <th width=50>번호</th>
                <th>제목</th>
                <th width=100>작성자</th>
                <th width=90>작성일</th>
            </tr>
       </thead> 
    </table>
</body>
</html>

 

 

 

 

위 코드 적용 후 모습

 

 

 

 

 

 

3. 게시판 리스트 출력

 

<?php
     $q = "SELECT * FROM board ORDER BY idx DESC";
     $d = mysqli_query($conn, $q)
     
     while ($row = mysqli_fetch_array($d)) { ?>   
          <tr>
             <td> <?=$row['idx']?> </td>
             <td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>
             <td> <?=$row['name']?> </td>
             <td> <?=substr($row['date'],0,10) ?> </td>
          </tr>       
<?php } ?>

 

 

$q = "SELECT * FROM board order by idx DESC";
 
ORDER BY  컬럼  DESC  명령어로 내림차순 정렬을 해줘서 최신글을 불러올 수 있게 해준다.

 

 

 

 

 

 

 

while ($row = mysqli_fetch_array($d)) { ?>   
    <tr>
        <td> <?=$row['idx']?> </td>
        <td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>
        <td> <?=$row['name']?> </td>
        <td> <?=substr($row['date'],0,10) ?> </td>
    </tr>       
<?php } ?>

 

DB에서 실행한 SQL문의 결과가 있으면 전부 가져올 때까지 반복한다.

 

 

 

 

<td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>

 

a 태그로 제목에 링크를 달아주고, 

 

제목을 클릭하면 read.php?idx= 번호 로 이동한다.

 

 

 

 

 

 

 

 

 

제목을 클릭했을 때 read.php 뒤에 idx=5가 붙은걸 확인할 수 있다.

 

 

 

 

 

 

 

 

list.php (전체 코드)

<?php
include '../db.php';
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <title>board</title>
</head>
<body>
    <h2>게시판</h2>
    <table width=800 border="1">
        <thead>
            <tr align=center>
                <th width=50>번호</th>
                <th>제목</th>
                <th width=100>작성자</th>
                <th width=90>작성일</th>
            </tr>
       </thead>
    <?php
        $q = "SELECT * FROM board ORDER BY idx DESC";
        $d = mysqli_query($conn, $q);
     
        while ($row = mysqli_fetch_array($d)) { ?>   
            <tr>
                <td> <?=$row['idx']?> </td>
                <td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>
                <td> <?=$row['name']?> </td>
                <td> <?=substr($row['date'],0,10) ?> </td>
            </tr>       
        <?php } ?>       
    </table>
    <a href="write.php">글쓰기</a>
</body>
</html>

 

 

 

 

 

Comments