일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- log4j2
- #이클립스
- 스프링부트
- #오라클
- #java
- #JVM
- #eclipse
- Eclipse
- Spring
- Plugins
- 설정
- 스프링
- #자바가상머신
- html
- 환경설정
- 인텔리제이
- mariadb
- CodeGlance
- #Oracle
- Oracle
- IntelliJ
- #자바
- log4j
- 설치
- 이클립스
- 플러그인
- 오라클
- 소스코드 맵
- springboot
- Like
- Today
- Total
커피와 개발자
페이징 처리하기 본문
게시물이 많은 경우 페이지를 나누어서 보여주는 것을 말한다.
다음은 mysql에서 사용되는 LIMIT로 페이징 처리하는 방법이다.
LIMIT 는 출력되는 레코드의 수를 제한할 때 사용된다.(시작은 0)
예를들어 SELECT * FROM board LIMIT 0, 10 이면 데이터베이스 안에 있는 게시물을 처음 레코드부터 10개만 가져오라는 의미가 된다.
[구현부]
if($_GET['page'] && $_GET['page'] > 0){
$page = $_GET['page'];
}else{
$page = 1;
}
$page_row = 5;// 한 페이지에 보일 글 수
$page_scale = 5;// 한줄에 보여질 페이지 수
$query = "SELECT count(*) FROM board";
$result = mysql_query($query, $conn);
$total = mysql_result($result,0,0);//전체 글 개수
$page_num = ceil($total/$page_row);//전체 페이지 수
$start_recode = ($page-1)*$page_row;
$paging_str = "";
if($page>1){
$paging_str .= "<a href=".$_SERVER['PHP_SELF']."?page=1\">[처음]</a>";
}
//페이징에 표시될 시작 페이지
$start_page = ((ceil($page/$page_scale)-1)*$page_scale)+1;
//페이징에 표시될 마지막 페이지
$end_page = $start_page+$page_scale-1;
if($end_page >= $page_num){$end_page=$page_num;}
//이전 페이징으로 가는 링크
if ($start_page > 1){
$paging_str .= "<a href='".$_SERVER['PHP_SELF']."?page=".($start_page-1)."'>[이전]</a>";
}
//페이지 출력 부분 링크
if ($page_num > 1) {
for ($i=$start_page;$i<=$end_page;$i++) {
// 현재 페이지가 아니면 링크 걸기
if ($page != $i){
$paging_str .= "<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>[$i]</a>";
// 현재 페이지면 굵게 표시하기
}else{
$paging_str .= "<b>[$i]</b>";
}
}
}
//다음 페이징으로 가는 링크
if ($page_num > $end_page){
$paging_str .= "<a href='".$_SERVER['PHP_SELF']."?page=".($end_page+1)."'>[다음]</a>";
}
//마지막 페이지 링크
if ($page < $page_num) {
$paging_str .= "<a href='".$_SERVER['PHP_SELF']."?page=".$page_num."'>[끝]</a>";
}
'웹개발 > PHP' 카테고리의 다른 글
[PHP] 배열 함수 매뉴얼 (0) | 2010.05.20 |
---|---|
[PHP] Checkbox 배열값 가져오기 (0) | 2010.05.19 |
치환 함수 str_replace() (0) | 2009.09.28 |
파일 다운로드 페이지 (0) | 2009.09.08 |
php 엑셀파일로 데이터 저장하기 (0) | 2009.08.31 |