페이징 및 함수이용

PHP 2016. 3. 1. 20:16

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>&nbsp;";

$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 .= "&nbsp;&nbsp;&nbsp;";

}



$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 .= "&nbsp;";

}



//다음

if($page_loop<$total_page){

$next_page_num = ($group_page+1)*$blockpage+1;

if(!$next_str){//기본값

$page_str .= "&nbsp;&nbsp;<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 .= "&nbsp;";

$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
블로그 이미지

엘로드넷

,