상세 컨텐츠

본문 제목

페이징 처리 DB x

php

by 개발일지작성 2024. 3. 27. 15:26

본문

728x90
<?php

$total = 300; // 게시물 총 갯수

$limit = 10; // 한 화면 출력 갯수

// 출력 페이지 수 << 1 2 3 4 5 >>
$page_limit = 5;

$data = range(1, $total); // 실제 게시물 데이터가 없으니 가상으로 넣어줌 실제 db연동해서 작업 시 이 부분만 db에서 가져오게 하면 됨

$page = isset($_GET['page']) && $_GET['page'] != '' && is_numeric($_GET['page']) ? $_GET['page'] : 1;

$start = ($page - 1 ) * $limit; // 게시물이 보여지는 스타트 구하는 공식

for($i = $start; $i < ($start + $limit); $i++) {
    if(isset($data[$i])) {
        echo $data[$i]."번 게시글<br>";
    }
}

$total_page = ceil($total / $limit); // 게시글이 101개를 10개로 나누면 소수점이 나오기에 올림(ceil)을 사용해서 11로 나오게 해야함

$start_page = ((floor(($page - 1) / $page_limit)) * $page_limit) + 1; // 스타트 페이지 구하는 공식
$end_page = $start_page + $page_limit -1;

if ($end_page > $total_page) {
    $end_page = $total_page;
}

echo "<a href='001.php?page=1'><<</a> ";

$prev_page = $start_page - 1;
if($prev_page > 1) {
    echo "<a href='001.php?page=".$prev_page."'><</a> ";
}

for($i = $start_page; $i <= $end_page; $i++) {

    if($page == $i) {
    echo $i. " ";
    } else {
        echo " <a href='001.php?page=". $i. "'>".$i."</a> ";
    }
}

$next_page = $end_page + 1;

if($next_page <= $total_page) {
    echo "<a href='001.php?page=". $next_page. "'>></a> ";
}

echo "<a href='001.php?page=".$total_page."'>>></a> ";

'php' 카테고리의 다른 글

PHP 단방향 암호화 함수  (0) 2024.03.27
PHP 페이징 처리 DB o  (0) 2024.03.27
PHP 부트스트랩 이용하여 로그인 구현  (0) 2024.03.26
PHP SQL 인젝션 공격 대비방법  (0) 2024.03.26
PHP+Ajax 투표 프로그램  (0) 2024.03.26

관련글 더보기