"PHP 게시판 페이지네이션 구현"의 두 판 사이의 차이

91번째 줄: 91번째 줄:
*[[페이지네이션]]
*[[페이지네이션]]


==참고 자료==
* http://moonlit0130.tistory.com/20
[[분류: PHP]]
[[분류: PHP]]

2016년 2월 2일 (화) 18:12 판

1 개요

PHP 페이징 구현
<?php
include 'pdo.php';
$page = ($_GET['page'])?$_GET['page']:1;

$article_count = query_one("SELECT COUNT(*) FROM board1");

$list_size = 6;
$more_page = 3;
$page_count = ceil( $article_count / $list_size );

$start_page = $page - $more_page;
$end_page = $page + $more_page;
if( $start_page < 1 ) $start_page = 1;
if( $end_page > $page_count ) $end_page = $page_count;

$prev_page = $start_page - $more_page - 1;
$next_page = $end_page + $more_page + 1;
if( $prev_page < 1 ) $prev_page = 1;
if( $next_page > $page_count ) $next_page = $page_count;

$s_point = $list_size * ( $page - 1 );
$rows = query_rows("SELECT * FROM board1 ORDER BY id DESC LIMIT $s_point, $list_size");
?>
<style>
.btn {
	display: inline-block;
	color: gray;
	width: 25px;
    text-decoration: none;
	border: 1px solid gray;
	border-color: transparent;
	text-align: center;
	font-weight: bold;
}
.btn:hover { 
	color: orange;
	border: 1px solid orange;
}
.btn.current {
	color: orange;
	text-decoration: underline;
}
.paging_area {
	text-align: center;	
}
</style>
<table>
	<tr>
		<th>번호</th>
		<th>제목</th>
	</tr>
	<?php foreach( $rows as $row ): ?>
	<tr>
		<td><?php echo $row['id']; ?></td>
		<td><?php echo $row['subject']; ?></td>
	</tr>
	<?php endforeach ?>
</table>
<div class='paging_area'>

<?php if( $start_page > 1 ): ?>
	<a href="<?php echo "$PHP_SELP?page=$prev_page"; ?>">« 이전</a>
	<a class='btn' href="<?php echo "$PHP_SELP?page=1"; ?>">1</a> ...
<?php else: ?>
	<span>« 이전</span>
<?php endif ?>

<?php for ($p=$start_page; $p<=$end_page; $p++): ?>
	<?php if( $p == $page ): ?>
		<a class='btn current' href="<?php echo "$PHP_SELP?page=".$p; ?>"><?php echo $p; ?></a>
	<?php else: ?>
		<a class='btn' href="<?php echo "$PHP_SELP?page=".$p; ?>"><?php echo $p; ?></a>
	<?php endif ?>
<?php endfor ?>

<?php if( $end_page < $page_count ): ?>
	... <a class='btn' href="<?php echo "$PHP_SELP?page=$page_count"; ?>"><?php echo $page_count; ?></a>
	<a href="<?php echo "$PHP_SELP?page=$next_page"; ?>">다음 »</a>
<?php else: ?>
	<span>다음 »</span>
<?php endif ?>

</div>

2 같이 보기

3 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}