<?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> ";