Pagination은 웹 사이트를 개발하는 과정에서 매우 일반적인 기능입니다. 기사 목록, 제품 목록 또는 댓글 데이터를 표시하든 페이징은 사용자 경험을 효과적으로 향상시키고 서버 성능에 대한 한 번에 과도한 콘텐츠로드의 영향을 피할 수 있습니다. 이 기사는 PHP를 사용하여 CEIL () 함수 및 count ()를 사용하여 간단하고 실용적인 페이징 로직을 구현하는 방법을 설명합니다.
Pagination의 핵심 아이디어는 많은 수의 데이터를 여러 "페이지"로 나누는 것이며 각 페이지는 데이터의 일부만 표시됩니다. 예를 들어, 100 개의 레코드가 있고 페이지 당 10 개가 표시되면 10 페이지가 필요합니다.
페이징을 구현하려면 다음과 같은 주요 변수가 필요합니다.
총 레코드 : count () 함수를 사용하여 얻습니다.
페이지 당 표시되는 레코드 수 : 요청 매개 변수에서 상수로 고정되거나 검색 될 수 있습니다.
현재 페이지 번호 : 일반적으로 $ _get [ 'Page'] 와 같은 GET 요청에서 얻은 것입니다.
총 페이지 수 : 총 레코드 수를 페이지 당 레코드 수로 나누고 Ceil () 로 반올림합니다.
배열에 저장된 기사 데이터 세트가 있다고 가정합니다.
<?php
$articles = [
'기사 1',
'기사 2',
'기사 3',
'기사 4',
'기사 5',
'기사 6',
'기사 7',
'기사 8',
'기사 9',
'기사 10',
'기사 11',
'기사 12'
];
$perPage = 5; // 페이지 당 표시됩니다 5 조각
$totalItems = count($articles); // 총 기록
$totalPages = ceil($totalItems / $perPage); // 총 페이지 수
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max(1, min($page, $totalPages)); // 페이지 번호가 합리적인 범위 내에 있는지 확인
$offset = ($page - 1) * $perPage; // 현재 페이지의 시작 데이터 위치
$currentItems = array_slice($articles, $offset, $perPage);
foreach ($currentItems as $item) {
echo "<p>$item</p>";
}
?>
사용자가 클릭하여 다른 페이지로 이동하려면 페이징 내비게이션 링크를 생성해야합니다. 예는 다음과 같습니다.
<?php
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $page) {
echo "<strong>$i</strong> ";
} else {
echo "<a href=\"https://m66.net/list.php?page=$i\">$i</a> ";
}
}
echo '</div>';
?>
이러한 방식으로 사용자가 링크를 클릭하면 다른 페이지 번호로 점프 할 수 있으며 프로그램은 페이지 번호에 따라 해당 데이터 컨텐츠를 표시합니다.
Count () 에 의해 총 데이터 볼륨을 얻은 다음 Ceil ()을 사용하여 총 페이지 수를 계산하면 간단하고 실용적인 페이징 로직을 구현할 수 있습니다. PHP는 array_slice () 와 사용자가 전달하는 페이지 번호 매개 변수를 사용하여 페이징 작업을 효율적으로 처리 할 수 있습니다.
이 방법은 중소형 데이터 페이지 매김 디스플레이에 적합합니다. 대규모 데이터의 경우 데이터베이스 수준에서 데이터베이스 레벨 제한 페이지 매김을 최적화하는 것이 좋습니다. 그러나 어느 쪽이든, Ceil () 과 count () 의 조합을 이해하는 것이 페이지 매김 마스터의 첫 번째 단계입니다.