본문 바로가기
WEB HACKING/웹 해킹[실습]

Php로 웹 개발하기 : 문의 게시판(2)

by madevth 2021. 12. 20.
반응형

문의 게시판 페이지를 만들어서 마이페이지에 연결하고, 이전 포스팅에서 만들었던 문의글 작성 기능을 문의 게시판에 연결해주자.

[qna_board.php]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="./css/style.css"  rel = "stylesheet"/>
    <title>Q&A Board</title>
</head>
<body>
    <div class = "column">
        <div>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Title</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                        if(array_key_exists('page', $_POST)){
                            printpage($_POST['page']);
                        }
                        else{
                            printpage(1);
                        }
                        function printpage(int $page){
                            $start_data = ($page - 1) * 10;
                            if(array_key_exists('board_search', $_POST)){
                                //board();
                            }
                            else{
                                $conn = mysqli_connect('localhost', 'ID', 'PW', 'DBname');
                                $sql = "SELECT * from qna order by id desc limit $start_data, 10;";
                                $result = mysqli_query($conn, $sql);
                                while($row = mysqli_fetch_array($result)){
                    ?>
                                    <tr>
                                        <td><?=$row['id']?></td>
                                        <td><a href = 'qna_read.php?id=<?=$row['id']?>'><?=$row['title']?></a></td>
                                    </tr>
                    <?php
                                }
                                mysqli_close($conn);
                            }
                        }
                    ?>
                </tbody>
            </table>
        </div>
        <button class = "writeBtn" onclick = "location.href = 'qna.php'">문의하기</button>
        <div class = "paginations">
            <?php
                $conn = mysqli_connect('localhost', 'ID', 'PW', 'DBname');
                $sql = "SELECT * from qna order by id desc;";
                $result = mysqli_query($conn, $sql);

                $data_num = mysqli_num_rows($result);
                $page_num = ceil($data_num / 10);
            ?>
                <form method = "post">
                    <?php
                        for($i = 1; $i <= $page_num; $i = $i+1){
                            echo "<input type = 'submit' class = 'pagination' name = 'page' value = '$i'/>";
                        }
                    ?>
                </form>
        </div>
    </div>
</body>
</html>

질문 게시판은 기존 게시판 코드를 일부 수정해서 만들었다.

변경된 부분은, SELECT * from qna 대신 SELECT * from qna order by id desc를 넣어 오름차순이 아니라 내림차순으로, 4개의 Column이 아니라 2개의 Column만 보여준 것이다.

//board() 부분은 기존 게시판에서 검색 기능에 따른 결과를 보여주기 위해 만든 함수였는데, 검색 기능을 없애고 내가 쓴 글만 보게 하는 기능을 추가할까 생각 중이다.

 

문의하기 버튼으로 qna.php와 연결해주었고, qna.php에서 qna_create.php로 데이터를 전송한 후, 다시 qna_board.php로 돌아가도록 변경해주었다.

[qna_create.php]

if($result2 = mysqli_query($conn, $sql2)){
    echo "<script>alert('글 작성에 성공하셨습니다!')</script>";
    echo "<script>window.location.href='qna_board.php';</script>";
} else{
    echo mysqli_error($conn);
}

문의글이 잘 작성되고, 표에 잘 뜨는지 확인해보자.

잘 작동하는 것을 볼 수 있다.

 

이제 한 두 번의 포스팅에 걸쳐

1) qna_read.php 페이지를 만들어 문의글을 확인할 수 있게 하는 기능
2) 내가  남긴 글만 확인할 수 있는 기능
3) 관리자로 모든 글을 확인할 수 있는 권한과 댓글을 달 수 있는 기능

등을 추가하고 웹 개발은 마무리하려고 한다.

반응형

댓글