1. 기본형
$temp=@mysql_fetch_array(mysql_query($count_sql, $connect));
$total=$temp[0];
$page_num = 20; //페이지당 자료수
if(!$page){
$page=1;//$page 값이 없으면 1
}
$start_num=($page-1)*$page_num;
$total_page=(int)(($total-1)/$page_num)+1;
$show_page_num=15; // 페이지 하단에 표시할 페이지 링크 수
$start_page=(int)(($page-1)/$show_page_num)*$show_page_num;
$sql = " ..... " . " LIMIT " . $start_num . "," . $page_num ;
// ======================== 페이지 이동 링크 ===========================//
$i=1;
// 만약 현재 페이지가 10페이지보다 클 때, 즉 11, 12이상의 페이지일 때 이전 페이지 보기를 출력.
If($page>$show_page_num) {
$prev_page=$page-$show_page_num;
echo"<a href=$PHP_SELF?page=$prev_page><img src=/image/ico_prev.gif></a>
<a href=$PHP_SELF?page=1>[1]</a>..";
} else {
echo "<img src=/image/ico_prev.gif>";
}
// 아래 while부분이 [1]~[10]등의 페이지를 출력하는 부분입니다.
while($i+$start_page<=$total_page&&$i<=$show_page_num) {
$move_page=$i+$start_page;
if($page==$move_page) {
echo" <font style='color:#FF3300;font-size:12pt;font-weight:bold'>$move_page</font> ";
} else {
echo"<a href=$PHP_SELF?page=$move_page> [$move_page] </a>";
}
$i++;
}
// 만약 전체 페이지 수가 지금 나타나 있는 페이지리스트보다 클 때 다음 페이지 보기를 출력합니다.
if($total_page>$move_page) {
$next_page=$move_page+1;
echo"..<a href=$PHP_SELF?page=$total_page>[$total_page]
<a href=$PHP_SELF?page=$next_page><img src=/image/ico_next.gif></a>";
} else {
echo "<img src=/image/ico_next.gif>";
}
2. 함수형
<?=getPage($nowpage, $showpage, $total_count, $prev_str, $next_str, $current_color, $f_url )?>
<?
function getPage($nowpage, $total_count, $prev_str, $next_str, $current_color, $field, $keyword ){
global $PHP_SELF;
global $showpage;
global $blockpage;
$page_str = "";
parse_str($_SERVER[QUERY_STRING],$QUERY_STRING);
unset($QUERY_STRING["nowpage"]);
$params="";
foreach($QUERY_STRING as $key=>$value){
$params.="&$key=$value";
}//End foreach
if(!$total_count) $total_count =1;
if(!$nowpage) $nowpage = 1;
if(!$showpage) $showpage = 10;
if(!$blockpage) $blockpage = 10;
if(!$current_color) $current_color = "#000000";
$total_page = ceil($total_count/$showpage); //전체페이지수를 뽑자 (전체글 / 보여지는 글)
$group_page = ceil($nowpage/$blockpage)-1; //그룹페이지??
//이전
if ($group_page>0){
$page_str .= "<a href='$PHP_SELF?nowpage=1&field=$field&keyword=$keyword".$params."' style='font-weight:500'>[처음]</a> ";
$prev_page_num = ($group_page-1)*$blockpage+1;
if(!$prev_str){//기본값
$page_str .= "<a href='$PHP_SELF?nowpage=$prev_page_num&field=$field&keyword=$keyword". $params ."' style='font-weight:500'>[이전]</a>";
}else{//이미지가 있다면
$page_str .= "<a href='$PHP_SELF?nowpage=$prev_page_num&field=$field&keyword=$keyword". $params ."'>";
$page_str .= "<img src='".$prev_str."' /></a>";
}
$page_str .= " ";
}
$page_loop=($group_page+1)*$blockpage;
$start_page = $group_page * $blockpage +1;
if ($page_loop>$total_page)$page_loop=$total_page;
for ($i=$start_page ; $i<=$page_loop ; $i++){
if($i==$nowpage){// 현재페이지
$page_str .= "<span style='color:".$current_color.";'>$i</span>";
}else{
$page_str .= "<span style='color:#808080; font-weight:500'><a href=$PHP_SELF?nowpage=$i&field=$field&keyword=$keyword".$params.">[$i]</a></span>";
}
$page_str .= " ";
}
//다음
if($page_loop<$total_page){
$next_page_num = ($group_page+1)*$blockpage+1;
if(!$next_str){//기본값
$page_str .= " <a href='$PHP_SELF?nowpage=$next_page_num&field=$field&keyword=$keyword".$params."'style='font-weight:500'>[다음]</a>";
}else{// 이미지
$page_str .= "<a href='$PHP_SELF?nowpage=$next_page_num&field=$field&keyword=$keyword".$params."'>";
$page_str .= "<img src='".$next_str."'></a>";
}
$page_str .= " ";
$page_str .= "<a href='$PHP_SELF?nowpage=$total_page&field=$field&keyword=$keyword".$params."'style='font-weight:500'>[마지막]</a> ";
}
return $page_str;
}
?>
'PHP' 카테고리의 다른 글
CentOS7 PHP7 oci8.so 설치 (0) | 2017.11.07 |
---|---|
php-mcrypt 설치가 안될 때 (0) | 2017.11.05 |
MySQL 트랜잭션 (0) | 2016.02.29 |
php 5.4 number_format (0) | 2016.01.27 |
php 5.4 eregi to preg_match (0) | 2016.01.27 |