소위 페이징 표시는 데이터베이스의 결과 세트가 표시를 위해 인위적으로 섹션으로 나누어지는 것을 의미합니다. 여기에는 두 개의 초기 매개변수가 필요합니다.
페이지당 레코드 수($PageSize)는 얼마입니까?
현재 페이지($CurrentPageID)는 어떤 페이지인가요?
이제 다른 결과 세트를 제공하면 특정 결과를 표시할 수 있습니다.
기타 매개변수: 이전 페이지($PReviousPageID), 다음 페이지($NextPageID), 총 페이지 수($numPages)등등은 모두 사전 지식을 바탕으로 얻을 수 있습니다.
MySQL 데이터베이스를 예로 들어 테이블의 특정 콘텐츠를 가로채려면 sql 문을 사용할 수 있습니다. 다음 SQL 문 세트를 살펴보고 규칙을 찾아보세요.
처음 10개 레코드: 테이블 제한 0,10에서 * 선택
레코드 11~20: 테이블 제한 10,10에서 * 선택
레코드 21~30: 테이블 제한 20,10에서 * 선택
……
이 SQL 문 집합은 실제로 $PageSize=10일 때 테이블의 각 페이지에서 데이터를 가져오기 위한 SQL 문입니다.
select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize
이 템플릿을 사용하여 해당 값을 대체하고 이를 위의 SQL 문 집합과 비교하여 이것이 사실인지 확인하세요. 데이터를 얻는 방법에 대한 가장 중요한 문제를 해결한 후에 남은 것은 매개변수를 전달하고 적절한 SQL 문을 구성한 다음 PHP를 사용하여 데이터베이스에서 데이터를 가져와 표시하는 것입니다. 아래에서는 구체적인 코드로 설명하겠습니다.
간단한 코드 구현
다음 코드를 자세히 읽어보시고 직접 디버그 및 실행해 보시고, 수정 후 검색 등 기능을 직접 추가하시는 것이 가장 좋습니다.
// 建立数据库连接 $link = mysql_connect("localhost", "mysql_user", "mysql_passWord") or die("Could not connect: " . mysql_error()); // 获取当前页数 if( isset($_GET['page']) ){ $page = intval( $_GET['page'] ); } else{ $page = 1; } // 每页数量 $PageSize = 10; // 获取总数据量 $sql = "select count(*) as amount from table"; $result = mysql_query($sql); $row = mysql_fetch_row($result); $amount = $row['amount']; // 记算总共有多少页 if( $amount ){ if( $amount < $page_size ){ $page_count = 1; } //如果总数据量小于$PageSize,那么只有一页 if( $amount % $page_size ){ //取总数据量除以每页数的余数 $page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一 }else{ $page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果 } } else{ $page_count = 0; } // 翻页链接 $page_string = ''; if( $page == 1 ){ $page_string .= '第一页|上一页|'; } else{ $page_string .= '第一页|.($page-1).'>上一页|'; } if( ($page == $page_count) || ($page_count == 0) ){ $page_string .= '下一页|尾页'; } else{ $page_string .= '.($page+1).'>下一页|.$page_count.'>尾页'; } // 获取数据,以二维数组格式返回结果 if( $amount ){ $sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size"; $result = mysql_query($sql); while ( $row = mysql_fetch_row($result) ){ $rowset[] = $row; } }else{ $rowset = array(); } // 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果 ?>
위 내용은 PHP에서 페이징 표시를 구현하는 방법입니다. 모든 분들의 학습에 도움이 되길 바랍니다