>백엔드 개발 >PHP 튜토리얼 >MySQL LIMIT 및 OFFSET을 사용하여 페이지 매김을 어떻게 구현합니까?

MySQL LIMIT 및 OFFSET을 사용하여 페이지 매김을 어떻게 구현합니까?

DDD
DDD원래의
2024-12-18 03:51:19735검색

How do I Implement Pagination With MySQL LIMIT and OFFSET?

MYSQL LIMIT, OFFSET을 사용한 페이지 매김

페이지 매김은 대규모 데이터 세트를 관리 가능한 청크 또는 페이지로 표시하는 데 사용되는 기술입니다. MySQL에서는 LIMIT 및 OFFSET 절을 사용하여 이를 수행할 수 있습니다.

질문

사용자가 많은 항목이 포함된 데이터베이스 테이블을 가지고 있으며 이를 구현하려고 합니다. 웹 페이지의 페이지 매김. 사용자는 페이지당 고정된 수(예: 4)의 항목을 표시하도록 코드를 이미 설정했지만, 총 페이지 수를 동적으로 결정하고 사용자가 페이지 사이를 탐색할 수 있도록 해야 합니다.

답변

이를 달성하려면 페이지 매기기에 URL 쿼리 매개변수를 사용하는 것이 좋습니다. 매개변수는 "/itempage.php?page=2"와 같이 페이지 번호를 나타내야 합니다. 서버 측 코드에서는 $_GET['page'를 사용하여 페이지 번호를 검색하고 이를 사용하여 SQL 쿼리에 대한 LIMIT 및 OFFSET 값을 계산할 수 있습니다.

예:

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

$items_per_page = 4;
$offset = ($page - 1) * $items_per_page;

// Build the SQL query
$sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;

총 페이지 수를 확인하려면 결과를 제한하기 전에 별도의 SQL 쿼리를 실행하세요.

$sql = "SELECT COUNT(*) AS total_rows FROM menuitem";
$result = mysqli_query($con, $sql);
$row_count = mysqli_num_rows($result);
mysqli_free_result($result);

$page_count = 0;
if ($row_count === 0) {
    // Handle empty table error
} else {
    $page_count = ceil($row_count / $items_per_page);

    if ($page > $page_count) {
        // Handle out-of-range page request
    }
}

총 페이지 수와 현재 페이지 포함 이제 페이지가 매겨진 콘텐츠에 대한 탐색 링크를 동적으로 생성할 수 있습니다.

위 내용은 MySQL LIMIT 및 OFFSET을 사용하여 페이지 매김을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.