PHP 페이징 PHP 페이징 샘플 코드

WBOY
풀어 주다: 2016-07-29 08:36:45
원래의
942명이 탐색했습니다.

/*
필요에 따라 테스트 데이터베이스를 생성하고 그 안에 테스트 테이블을 생성합니다.
ID 필드가 입력된 상태에서 데이터를 입력하면 됩니다. .
레벨 제한으로 인해 실수는 불가피합니다. .
*/
$conn = mysql_connect("localhost","root","");
$maxnum = 2; //각 페이지에 표시되는 레코드 수
mysql_select_db("test" , $conn);
$query1 = "SELECT COUNT(*) AS totalrows FROM 테스트 ";
$result1 = mysql_query($query1, $conn) 또는
$row1 = mysql_fetch_assoc($result1);
$totalRows1 = $row1['totalrows']; //데이터 세트의 총 데이터 수
$totalpages = ceil($totalRows1/$maxnum);// 페이징할 수 있는 총 페이지 수, ceil()은 반올림 함수입니다.
if(!isset($_GET['page']) || !intval($_GET['page']) || $_GET[ 'page'] > $totalpages) $page = 1; //3가지 오류에 대한 기본 처리 수행
//url 매개변수 페이지가 존재하지 않는 경우, 페이지가 10진수가 아닌 경우 분할할 수 있는 페이지 수보다 많을 경우 기본값은 1
else $page = $_GET['page']
$startnum = ($page - 1)*$maxnum //시작; 데이터 세트의 $startnum 항목. 데이터 세트는 0부터 시작합니다.
$query = "SELECT * FROM test LIMIT $startnum,$maxnum";//요구 사항을 충족하는 데이터를 선택합니다. $startnum 데이터부터 시작하여, $maxnum 행 선택
$result = mysql_query($query, $conn ) 또는 die(mysql_error())
$row = mysql_fetch_assoc($result)
;

//구현 << < 1 2 3 4 5>>> 페이지네이션 링크
$pre = $page - 1;//이전 페이지
$next = $page 1;//다음 페이지
$maxpages = 4;//페이지 처리 시 << 1 2 3 4 >>4페이지 표시
$pagepre = 1;//현재 페이지가 4이면 이전 $pagepre 페이지도 표시됩니다. < 3 /4/ 5 6 >> 세 번째 페이지가 표시됩니다.
if($page != 1) { echo "<< ";
echo "< ";}
if($maxpages> =$totalpages) //총 기록이 4페이지를 표시하기에 부족한 경우
{$pgstart = 1;$pgend = $ totalpages;}//페이지 인쇄 처리가 없습니다
elseif(($page-$pagepre -1 $maxpages)>$totalpages)//총 페이지 수가 6이고 현재 페이지 수가 5인 것처럼 , 단지 4개가 아닌 이전 3 4가 표시되어야 합니다.
{$pgstart = $totalpages - $ maxpages 1;$pgend = $totalpages;}
else{
$pgstart=(($page<= $pagepre)?1:($page-$pagepre));//현재 페이지가 1이면 0 1 2 3 >> 대신 1 2 3 4 >> -1));
}
for($pg=$pgstart;$pg<=$pgend;$pg ){ //점프 메뉴
if($pg == $page) echo " < ;a href="".$_SERVER['PHP_SELF']."?page=$pg">$pg ";
else echo "$pg "
}
if($page ! = $totalpages)
{echo "> "
echo ">> ";}
?>