728x90
반응형
01.
<!--?php
02.
$currentPage
=
$_REQUEST
[
"page"
];
03.
if
(!
$currentPage
)
$currentPage
= 1;
04.
05.
$totalRecord
= 111;
// 전체 레코드수
06.
$recordPerPage
= 10;
// 페이지 당 뿌릴 레코드 수
07.
$pagePerBlock
= 10;
// [1] ~ [10] 까지 한번에 10개씩
08.
09.
function
handlePage(
$totalRecord
,
$recordPerPage
,
$pagePerBlock
,
$currentPage
){
// 전체레코드, 페이지당 레코드수(10) , 블럭당페이지수(10), 현재페이지
10.
11.
$totalNumOfPage
=
ceil
(
$totalRecord
/
$recordPerPage
);
//16page
12.
$totalNumOfBlock
=
ceil
(
$totalNumOfPage
/
$pagePerBlock
);
//2block
13.
$currentBlock
=
ceil
(
$currentPage
/
$pagePerBlock
);
// 1page
14.
15.
$startPage
= (
$currentBlock
-1)*
$pagePerBlock
+1;
// 1page
16.
$endPage
=
$startPage
+
$pagePerBlock
-1;
// 10page
17.
if
(
$endPage
-->
$totalNumOfPage
)
$endPage
=
$totalNumOfPage
;
18.
19.
//NEXT,PREV 존재 여부
20.
$isNext
= false;
21.
$isPrev
= false;
22.
23.
if
(
$currentBlock
<
$totalNumOfBlock
)
$isNext
= true;
24.
if
(
$currentBlock
> 1)
$isPrev
= true;
25.
26.
if
(
$totalNumOfBlock
== 1){
27.
$isNext
= false;
28.
$isPrev
= false;
29.
}
30.
31.
if
(
$isPrev
){
32.
$goPrevPage
=
$startPage
-
$pagePerBlock
;
// 11page
33.
echo
"<a href="
\"
$PHP_SELF
?page=
$goPrevPage
\"
">[PREV]</a>"
;
34.
}
35.
for
(
$i
=
$startPage
;
$i
<=
$endPage
;
$i
++){
36.
echo
"<a href="
\"
$PHP_SELF
?page=
$i
\"
">["
.
$i
.
"]</a>"
;
37.
}
38.
if
(
$isNext
){
39.
$goNextPage
=
$startPage
+
$pagePerBlock
;
// 11page
40.
echo
"<a href="
\"
$PHP_SELF
?page=
$goNextPage
\"
">[NEXT]</a>"
;
41.
}
42.
}
43.
44.
handlePage(
$totalRecord
,
$recordPerPage
,
$pagePerBlock
,
$currentPage
);
45.
46.
?>
728x90
반응형
'Web Programming > php' 카테고리의 다른 글
php 숫자연산 (0) | 2018.08.30 |
---|---|
php var_dump, 문자결합 (0) | 2018.08.30 |
php echo (0) | 2018.08.30 |
PHP 란 (0) | 2018.08.30 |
Window PHP 설치 (0) | 2018.08.30 |