현재 위치: > 최신 기사 목록> Pagination 구현 : MySQLI_RESULT와 한도를 결합합니다

Pagination 구현 : MySQLI_RESULT와 한도를 결합합니다

M66 2025-05-28

웹 사이트 개발에서 페이징 기능은 매우 일반적인 요구 사항입니다. Pagination은 페이지로드 시간을 효과적으로 줄이고 사용자 경험을 더 매끄럽게 할 수 있습니다. 이 기사는 PHP에서 MySQLI_RESULT 기능을 사용하여 한계가 있는 페이징 기능을 구현하는 방법을 소개합니다.

1. 페이지 매김의 기본 원리

페이징의 기본 아이디어는 한 번에 모든 데이터를 반환하면 특히 데이터 양이 클 때 성능 문제가 발생할 수 있다는 것입니다. 따라서 쿼리의 레코드 수를 제한하여 페이징을 구현하여 과도한 데이터로드를 피합니다.

Limit은 반환 된 레코드 수를 제한하는 SQL의 키워드입니다. 한계 와 결합하여 쿼리 결과의 시작 위치와 페이지 매김 효과를 달성하기 위해 반환 된 레코드 수를 지정할 수 있습니다.

2. 데이터베이스 연결 및 쿼리

먼저 MySQL 데이터베이스에 연결하고 SQL 쿼리 문을 작성해야합니다. 페이징을 구현하려면 한계를 사용하여 페이지 당 표시되는 레코드 수를 제한하고 오프셋을 사용하여 반환을 시작할 레코드를 설정합니다.

샘플 코드 :

 <?php
// 데이터베이스 연결
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";

// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);

// 연결을 확인하십시오
if ($conn->connect_error) {
    die("연결이 실패했습니다: " . $conn->connect_error);
}

// 페이지 당 표시되는 레코드 수
$records_per_page = 10;

// 현재 페이지 번호를 얻으십시오
if (isset($_GET['page']) && is_numeric($_GET['page'])) {
    $current_page = $_GET['page'];
} else {
    $current_page = 1;
}

// 오프셋을 계산합니다
$offset = ($current_page - 1) * $records_per_page;

// 쓰다SQL쿼리 문
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";

// 쿼리를 실행하십시오
$result = $conn->query($sql);

// 쿼리 결과를 얻으십시오
if ($result->num_rows > 0) {
    // 출력 데이터
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
    }
} else {
    echo "데이터가 없습니다";
}

// 총 레코드 수를 계산하십시오
$total_sql = "SELECT COUNT(*) AS total FROM your_table";
$total_result = $conn->query($total_sql);
$total_row = $total_result->fetch_assoc();
$total_records = $total_row['total'];

// 총 페이지 수를 계산하십시오
$total_pages = ceil($total_records / $records_per_page);

// 출력 페이징 링크
for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='m66.net?page=$i'>$i</a> ";
}

// 연결을 닫으십시오
$conn->close();
?>

3. 코드 파싱

  • 데이터베이스 연결 : 먼저 MySQLI 확장을 통해 MySQL 데이터베이스에 연결합니다. 연결이 성공한 후 오류를 확인하십시오.

  • 페이징 로직 : 페이지 매개 변수를 얻어 현재 페이지 번호를 결정합니다. 페이지 번호가 제공되지 않으면 기본값이 첫 페이지입니다. 그런 다음 오프셋을 계산하여 쿼리 결과의 시작 위치를 결정합니다.

  • SQL 쿼리 : 제한오프셋을 사용하여 쿼리 당 레코드 수를 제한합니다. 제한 $ oldset, $ records_per_page 문은 페이징의 기능을 구현합니다.

  • 총 레코드 및 총 페이지 수 : 다른 쿼리를 통해 테이블의 총 레코드 수를 계산하고 Ceil () 함수를 사용하여 총 페이지 수를 계산하여 레코드 수가 records_per_page 의 정수가 아닌 경우에도 마지막 페이지를 표시 할 수 있는지 확인하십시오.

  • Pagination Link : 총 페이지 수에 따라 페이징 링크를 생성합니다. 각 링크는 다른 페이지 번호를 가리키고 사용자는 클릭하여 해당 페이지로 이동할 수 있습니다.

4. 요약

한계 와 결합 된 MySQLI_RESULT 기능을 사용하여 페이징 기능을 구현하는 것은 매우 일반적인 데이터베이스 쿼리 기술입니다. 페이징 로직을 합리적으로 설계함으로써 웹 사이트의 로딩 속도를 향상시키고 사용자 경험을 향상시킬 수 있습니다. 실제 개발에서 페이징 기능은 종종 다양한 시나리오의 요구를 충족시키기 위해 검색, 필터링 및 기타 기능과 함께 사용됩니다.