본문 바로가기
따라 공부하기/PHP게시판 따라하기

[PHP+MySQL]게시판 만들기 8 - 페이지 넘버

by DawIT 2020. 12. 7.
320x100

이 글은 이곳을 참고하여 쓰여졌습니다.

 

이전에 게시판을 제작하면서, 게시글이 10개를 초과하면 보이지 않게 설정해 두었다.

 

오늘은 나머지 글들도 모두 볼 수 있도록 페이지 기능을 추가해보려고 한다.

 

일단 index.php를 페이징 기능을 위해 수정한다.

 

<?php
         if(isset($_GET['page'])){
          $page = $_GET['page'];
            }else{
              $page = 1;
            }
              $sql = query("select * from board");
              $row_num = mysqli_num_rows($sql); //게시판 총 레코드 수
              $list = 10; //한 페이지에 보여줄 개수
              $block_ct = 5; //블록당 보여줄 페이지 개수

              $block_num = ceil($page/$block_ct); // 현재 페이지 블록 구하기
              $block_start = (($block_num - 1) * $block_ct) + 1; // 블록의 시작번호
              $block_end = $block_start + $block_ct - 1; //블록 마지막 번호

              $total_page = ceil($row_num / $list); // 페이징한 페이지 수 구하기
              if($block_end > $total_page) $block_end = $total_page; //만약 블록의 마지박 번호가 페이지수보다 많다면 마지박번호는 페이지 수
              $total_block = ceil($total_page/$block_ct); //블럭 총 개수
              $start_num = ($page-1) * $list; //시작번호 (page-1)에서 $list를 곱한다.

              $sql2 = query("select * from board order by idx desc limit $start_num, $list");  
              while($board = $sql2->fetch_array()){
              $title=$board["title"]; 
                if(strlen($title)>30)
                { 
                  $title=str_replace($board["title"],mb_substr($board["title"],0,30,"utf-8")."...",$board["title"]);
                }
                $con_idx = $board["idx"];
                $reply_count = query("SELECT COUNT(*) as cnt FROM reply where con_num=$con_idx");
                $rep_count = $reply_count->fetch_array();
              ?>

 

그리고 index.php 하단에 페이지 넘버를 넣기 위한 코드도 작성한다.

 

 

이렇게 하고 실행하면 원래 되었을 터였는데, 변경한 css 가 적용이 되지 않았던 문제가 있었다.

 

이럴 때의 원인은 브라우저에서 변경된 css를 쓰지 않고 이전에 저장한 캐시를 사용해서 그렇다고 한다.

 

해결책은

 

 

이렇게 css문서를 링크하는 부분에 ?after를 붙여주면 해결된다.

 

그리고 게시판 새로고침

 

 

이렇게 페이지가 잘 나오는 것을 확인할 수 있다.

 

다음에는 파일 업로드를 구현해 봐야겠다.

댓글