PHP 페이지 매김

Subodh Poudel 2023년1월30일
  1. SQL에서SELECT문과 함께LIMIT절을 사용하여 PHP에서 행 페이지 매김
  2. PHP의 페이지 매김에PreviousNext탐색 기능 추가
PHP 페이지 매김

이 기사에서는SQL에서SELECT문과 함께LIMIT절을 사용하여 PHP에서 페이지 매김을 수행하는 방법을 소개합니다. LIMIT절을 사용하여 특정 인덱스에서 시작하여 페이지 매김으로 표시 할 특정 행 수를 선택합니다.

또한 PHP 페이지 매김에PreviousNext탐색 기능을 추가하는 또 다른 방법을 보여줍니다. 이 방법은 첫 번째 방법에 해당 페이지를 탐색하는 추가 기능 만 추가합니다.

SQL에서SELECT문과 함께LIMIT절을 사용하여 PHP에서 행 페이지 매김

SELECT문과 함께LIMIT절을 사용하여 페이지에 표시 할 처음 n 개의 결과를 지정할 수 있습니다. 페이지를 탐색하기 위해GET메소드로anchor태그에 페이지 번호를 제공 할 수 있습니다. 이 방법에서는 페이지 당 표시 할 행 수를 정의하고 데이터베이스에서 모든 행을 검색하여 필요한 총 페이지 수를 계산합니다. 사용자가 요청한 페이지 번호를 얻기 위해isset()함수와 함께$_GET배열을 사용할 수 있습니다.

예를 들어,$results_per_page변수를 만들고 여기에2를 저장합니다. mysqli_num_rows()함수를 사용하여 데이터베이스의 행 수를 찾아$number_of_results변수에 저장합니다. ceil()함수를 사용하여 행을 표시하는 데 필요한 총 페이지 수를 결정합니다. ceil()함수 내에서$number_of_results변수를$results_per_page변수로 나눕니다. page변수가 설정되었는지 확인하려면isset()함수와 함께$_GET슈퍼 글로벌 변수를 사용합니다. 설정되지 않은 경우page변수를1로 설정합니다. 변수가 설정된 경우page변수에 값을 할당합니다. page변수에1을 빼고$this_page_first_result변수를 곱합니다. 변수$this_page_first_result에 작업을 저장합니다. LIMIT절이있는SQL문을SELECT * FROM alpha LIMIT '로 작성합니다. $ this_page_first_result. ','. $ results_per_page. 쿼리를 실행하고 결과를 표시합니다. 마지막으로page변수와$number_of_page사이를 반복하는for-loop를 만듭니다. 루프 내에서anchor태그를echo하고href속성 값을index.php?page'.$page로 씁니다. anchor태그 사이에page변수를 작성합니다.

아래 예에서 데이터베이스의alpha테이블에는 6 개의 행이 있습니다. 페이지 매김을 수행하면 페이지 당 두 행이 표시됩니다. ceil()함수는 행을 표시하는 데 필요한 총 페이지 수를 결정합니다. 처음에는$page변수가 설정되지 않았으므로 페이지는 1 페이지부터 시작됩니다.$this_page_first_result변수는 사용자가 현재있는 페이지 번호를 결정합니다. $this_page_first_result변수는 페이지의 첫 번째 행을 나타냅니다. $results_per_page변수는 페이지 당 결과 수를 나타냅니다. 출력 섹션은index.php페이지를 표시합니다. 2페이지를 클릭하면 데이터베이스에서 다음 두 행을 출력합니다.

예제 코드 :

#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
    $page = 1;
} else {
    $page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
    echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>

출력:

1 A 
2 B 
1 2 3

PHP의 페이지 매김에PreviousNext탐색 기능 추가

페이지 매김에서PreviousNext탐색 기능을 제공하기 위해 첫 번째 메소드의 코드 예제에 몇 가지 추가 코드 스 니펫을 추가 할 수 있습니다. $page변수를 1 씩 증가 및 감소시켜 이전 및 다음 페이지를 가리킬 수 있습니다. anchor태그에서 증가 및 감소 된 변수를 사용하여NextPrevious기능을 사용할 수 있습니다.

예를 들어,$prev$next라는 두 개의 변수를 만듭니다. $page변수를 하나로 빼고$prev변수에 연산을 할당합니다. 마찬가지로$page변수에 하나를 추가하고$next변수에 할당합니다. 페이지 번호의for루프 바로 앞에Previous이라는anchor태그를 에코합니다. ‘anchor’ 태그의 ‘href’ 속성에 값 index.php?page=' . $prev .을 할당합니다. 같은 방법으로href속성의page값으로$next변수를 사용하여Next에 대한 또 다른anchor태그를 만듭니다.

아래 출력 섹션에서는 두 번째 페이지를 보여줍니다. Previous을 클릭하면 첫 번째 페이지로 이동하고Next을 클릭하면 세 번째 페이지로 이동합니다.

예제 코드 :

# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>

출력:

3 C 
4 D 
Previous 1 2 3 Next
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn