웹 애플리케이션 개발에서 페이징 기능은 다량의 데이터 프레젠테이션을 처리 할 때 필수 기술입니다. 페이징을 통해 사용자는 데이터를보다 쉽게 탐색하여 페이지 응답 속도 및 사용자 경험을 향상시킬 수 있습니다. PHP에 인기있는 오픈 소스 프레임 워크 인 ThinkPhp는 간단하고 효율적인 페이징 솔루션을 제공합니다. 이 기사는 ThinkPhp Pagination의 구현 방법을 자세히 소개하고 샘플 코드를 동반하여 신속하게 시작할 수 있도록 도와줍니다.
ThinkPhp Pagination은 주로 데이터베이스의 한계 키워드 구현을 기반으로하며 쿼리 결과의 행 수를 제한하여 페이지 매김 효과가 달성됩니다. 페이징 로직의 핵심은 표시 할 데이터를 정확하게 얻기 위해 각 페이지에 표시된 데이터의 양과 현재 페이지 수를 결정하는 것입니다.
ThinkPhp의 페이징 기능을 사용하면 먼저 페이징 클래스 인스턴스를 만들어야합니다. 다음 예제는 부트 스트랩 드라이버 Pagination 클래스를 사용합니다.
use think\paginator\driver\Bootstrap;
// 페이징 클래스를 초기화하십시오
$listRows = 10; // 페이지 당 표시되는 레코드 수
$currentPage = 1; // 현재 페이지 수
$totalCount = 100; // 총 기록
$page = new Bootstrap($totalCount, $listRows, $currentPage);
$pageHtml = $page->render();
코드에서 페이징 클래스 객체 $ 페이지가 초기화되고 총 데이터 스트립 수, 각 페이지 수 및 현재 페이지 번호가 설정됩니다. PAGED HTML 코드를 생성하기 위해 Render () 메소드가 호출됩니다.
Pagination 디스플레이를 실현하려면 쿼리시 다음 키워드와 함께 데이터 수집 범위를 제한해야합니다.
// 쿼리 데이터
$start = ($currentPage - 1) * $listRows; // 시작 위치를 계산하십시오
$data = Db::name('table')->limit($start, $listRows)->select();
여기에서 $ 시작은 현재 페이지와 페이지 당 레코드 수에 따라 계산되므로 해당 간격의 데이터 만 각 페이지에 대해 쿼리해야합니다.
생성 된 Pagination HTML 코드는 사용자가 페이지를 탐색하고 전환 할 수 있도록 페이지로 직접 출력 할 수 있습니다.
echo $pageHtml;
프론트 엔드가 페이징 링크를 표시 한 후 사용자는 클릭하여 해당 페이지 번호로 점프하여 데이터 브라우징을 실현할 수 있습니다.
다음 예제는 코드의 세 부분을 통합합니다. 페이징 클래스 초기화, 쿼리 및 페이징 디스플레이 참조 :
use think\paginator\driver\Bootstrap;
// 페이지 매김을 초기화하십시오
$listRows = 10;
$currentPage = 1;
$totalCount = 100;
$page = new Bootstrap($totalCount, $listRows, $currentPage);
$pageHtml = $page->render();
// 쿼리 데이터
$start = ($currentPage - 1) * $listRows;
$data = Db::name('table')->limit($start, $listRows)->select();
// 출력 페이징 링크
echo $pageHtml;
위의 단계를 통해 ThinkPHP 프레임 워크를 기반으로 한 페이징 기능을 성공적으로 구현했습니다. 핵심 프로세스는 먼저 페이징 클래스를 초기화 한 다음 데이터베이스 쿼리 중에 한도 제한 결과를 사용한 다음 Paging Navigation 링크를 페이지로 렌더링하는 것입니다. 페이징의 합리적인 사용은 응용 프로그램 성능과 사용자 경험을 효과적으로 향상시킬 수 있습니다. 데이터 볼륨이 클 때 먼저 사용하는 것이 좋습니다.