LIMIT 및 OFFSET을 사용하여 MySQL에서 페이지 매김 링크를 동적으로 생성하는 방법은 무엇입니까?
Dec 05, 2024 pm 03:17 PMMySQL LIMIT, OFFSET: 동적 페이지 생성을 사용한 페이지 매김
페이지 매김을 사용하면 페이지당 제한된 수의 항목을 표시하여 사용자가 대규모 데이터 세트를 탐색할 수 있습니다. . MySQL LIMIT 및 OFFSET 절을 활용하면 특정 데이터 페이지를 효율적으로 검색할 수 있습니다.
그러나 잠재적인 페이지 번호마다 별도의 페이지를 만드는 것은 비효율적입니다. 대신 데이터베이스의 총 행 수를 기반으로 페이지 수를 동적으로 결정할 수 있습니다.
페이지 수 결정
총 행 수를 찾으려면 페이지가 있는 경우 먼저 별도의 쿼리를 사용하여 테이블의 총 행 수를 계산해야 합니다.
SELECT COUNT(*) FROM menuitem
이렇게 하면 열이 포함된 단일 행이 반환됩니다.
페이지 수 계산
그런 다음 총 행을 페이지당 원하는 항목으로 나누고 반올림하여 총 페이지 수를 계산할 수 있습니다. 가장 가까운 정수로 변환합니다.
$page_count = (int)ceil($row_count / $items_per_page);
잘못된 페이지 조정 요청
사용자가 존재하지 않는 페이지(예: 3개만 있는 경우 5페이지)를 요청하는 경우 상황에 따라 마지막 페이지 또는 첫 페이지로 리디렉션할 수 있습니다. .
페이지 링크 출력
전체 페이지 수를 알고 나면, 페이지 링크 목록을 생성할 수 있습니다. 현재 페이지에 대해서는 텍스트로 표시하고, 다른 페이지에 대해서는 링크를 생성합니다.
for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { // current page echo 'Page ' . $i . '<br>'; } else { // link to other page echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
수정된 코드
동적 페이지 계산 사용 방법을 사용하면 수정된 코드는 다음과 같을 수 있습니다.
// Get page number from URL $page = 1; if (!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if (false === $page) { $page = 1; } } // Get total row count $sql = "SELECT COUNT(*) FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); mysqli_free_result($result); // Calculate page count $page_count = (int)ceil($row_count / $items_per_page); // Double check page is in range if ($page > $page_count) { $page = 1; } // Calculate offset $offset = ($page - 1) * $items_per_page; // Select limited data $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page; $result = mysqli_query($con, $sql); // ... (Rest of your code) ... // Output page links for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { echo 'Page ' . $i . '<br>'; } else { echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
이 코드를 사용하면 페이지 수에 따라 페이지를 동적으로 생성할 수 있습니다. 행을 데이터베이스에 저장하므로 하드 코딩된 페이지 번호와 오프셋이 필요하지 않습니다.
위 내용은 LIMIT 및 OFFSET을 사용하여 MySQL에서 페이지 매김 링크를 동적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
