> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 LIMIT 및 OFFSET을 사용하여 PHP에서 데이터베이스 페이지 매김을 구현하는 방법은 무엇입니까?

MySQL의 LIMIT 및 OFFSET을 사용하여 PHP에서 데이터베이스 페이지 매김을 구현하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-05 03:13:41
원래의
273명이 탐색했습니다.

How to Implement Database Pagination in PHP using MySQL's LIMIT and OFFSET?

MySQL LIMIT, OFFSET with Response를 사용한 페이지 매김

페이지 매김을 사용하면 웹 개발의 일반적인 기술인 대규모 데이터 세트를 더 작고 관리 가능한 페이지로 분할할 수 있습니다. . MySQL은 페이지 매김을 처리하기 위해 LIMIT 및 OFFSET 절을 제공합니다.

문제:

페이지별로 미리 정의된 항목 수를 사용하여 데이터베이스 테이블의 데이터를 표시하려면 여러 페이지를 생성해야 합니다. 페이지이지만 페이지 매김을 하드코딩하지 않고 logic.

해결책:

다음과 같이 URL에 페이지 매기기 매개변수를 사용하세요.

http://yoursite.com/itempage.php?page=2
로그인 후 복사

다음을 사용하여 요청된 페이지 번호에 액세스할 수 있습니다. $_GET['page'].

페이지를 기반으로 오프셋을 동적으로 계산하도록 SQL 쿼리를 수정하세요. number:

// determine page number from $_GET
$page = 1;
if(!empty($_GET['page'])) {
    $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
    if(false === $page) {
        $page = 1;
    }
}

// set the number of items to display per page
$items_per_page = 4;

// build query
$offset = ($page - 1) * $items_per_page;
$sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
로그인 후 복사

총 페이지 수를 결정하려면 테이블의 행 수를 계산해야 합니다.

$sql = "SELECT your_primary_key_field FROM menuitem";
$result = mysqli_query($con, $sql);
$row_count = mysqli_num_rows($result);
// free the result set as you don't need it anymore
mysqli_free_result($result);

$page_count = 0;
if (0 === $row_count) {  
    // maybe show some error since there is nothing in your table
} else {
   // determine page_count
   $page_count = ceil($row_count / $items_per_page);
   // double check that request page is in range
   if($page > $page_count) {
        // error to user, maybe set page to 1
        $page = 1;
   }
}
로그인 후 복사

페이지가 매겨진 데이터를 표시할 때 다음을 사용할 수 있습니다. 적절한 링크를 생성하기 위한 $page 및 $page_count 변수:

// later when outputting page, you can simply work with $page and $page_count to output links
// for example
for ($i = 1; $i <= $page_count; $i++) {
   if ($i === $page) { // this is current page
       echo 'Page ' . $i . '<br>';
   } else { // show link to other page   
       echo '<a href=&quot;/menuitem.php?page=' . $i . '&quot;>Page ' . $i . '</a><br>';
   }
}
로그인 후 복사

위 내용은 MySQL의 LIMIT 및 OFFSET을 사용하여 PHP에서 데이터베이스 페이지 매김을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿