웹 페이지에서 기사 목록, 제품 목록 등과 같은 더 많은 데이터를 표시해야 할 때 사용자가 더 편리하게 탐색하고 볼 수 있도록 데이터에 페이지를 매겨야 하는 경우가 많습니다. 페이징 기능을 구현한 웹페이지의 경우 사용자가 필요한 데이터를 보다 정확하게 필터링할 수 있도록 일부 쿼리 조건을 추가해야 하는 경우가 있습니다. 그렇다면 PHP에서 페이징 및 쿼리 기능을 구현하는 방법은 무엇입니까? 아래에서는 구체적인 구현 방법을 소개하겠습니다.
먼저 페이징 구현을 검토해 보겠습니다.
페이징 기능을 구현하려면 일반적으로 데이터베이스에서 LIMIT와 OFFSET라는 두 가지 키워드를 사용해야 합니다. 이 중 LIMIT는 특정 위치부터 가져올 레코드의 최대 개수를 나타내고, OFFSET은 가져올 위치를 나타냅니다. 일반적으로 이 두 키워드의 값을 계산할 수 있으며 공식은 LIMIT ($page - 1) * $pagesize, $pagesize입니다.
실제 응용에서는 다음 사항에도 주의해야 합니다.
- 현재 페이지 전후의 페이지 수와 총 페이지 수를 계산하려면 총 데이터 수를 가져와야 합니다.
각 페이지에 표시되는 데이터 조각 수는 일반적으로 10, 20, 30 등으로 설정됩니다. - 사용자가 페이지 이동 작업을 수행할 수 있도록 허용합니다. 페이지 번호.
-
위 내용은 페이징의 기본 지식입니다. 독자가 페이징 구현에 익숙하지 않은 경우 관련 정보를 먼저 읽어도 됩니다.
이제 페이징 및 쿼리 기능을 구현하는 방법을 살펴보겠습니다.
쿼리를 사용한 페이징 기능의 경우 구현 시 페이징과 쿼리라는 두 부분을 별도로 고려해야 합니다. 아래에서는 이 두 부분을 별도로 소개하겠습니다.
1. 페이징
페이징을 구현하는 방법은 위에서 소개한 것과 유사하지만 약간의 미세 조정이 있습니다. 구체적인 구현 방법은 다음과 같습니다.
전체 쿼리 결과 수를 가져옵니다. -
총 쿼리 결과 수는 SQL의 SELECT count(*) 문을 통해 후속 총 페이지 수와 페이지 수 계산에 필요한 기본 데이터입니다. 예는 다음과 같습니다.
SELECT count(*) as total FROM table WHERE condition;
로그인 후 복사
여기서 total은 쿼리 결과의 총 개수입니다.
사용자가 선택한 쿼리 조건을 기준으로 필터링 및 페이징합니다. -
이 부분은 더 복잡하며 특정 비즈니스 시나리오에 따라 고려해야 합니다. 온라인 쇼핑몰을 예로 들면, 제품 유형을 필터링하려면 사용자가 원하는 유형을 선택할 수 있는 프런트 엔드 페이지에 드롭다운 메뉴를 추가해야 합니다. 그런 다음 프런트엔드 페이지에서 전송된 쿼리 조건을 SQL 문으로 조합한 후 페이징 알고리즘을 통해 페이징을 수행하고 최종적으로 페이징 결과를 표시합니다.
이제 구체적인 코드 구현을 살펴보겠습니다.
첫 번째는 총 개수를 구하는 코드입니다:
$sql = "SELECT count(*) as total FROM table WHERE condition";
$result = $db->query($sql);
$row = $result->fetch_assoc();
$total = $row['total'];
로그인 후 복사
다음은 SQL 문을 조합하고 페이징을 수행하는 코드입니다.
$page = $_GET['page'] ? $_GET['page'] : 1;
$pagesize = 10;
$offset = ($page - 1) * $pagesize;
$sql = "SELECT * FROM table WHERE condition";
if (isset($_GET['type']) && !empty($_GET['type'])) {
$type = $_GET['type'];
$sql .= " AND type = '$type'";
}
$sql .= " ORDER BY id DESC LIMIT $offset, $pagesize";
$result = $db->query($sql);
로그인 후 복사
그 중 $page는 현재 페이지 번호를 나타내고, $pagesize는 표시되는 데이터의 양을 나타냅니다. $offset은 데이터 가져오기가 시작되는 위치를 나타냅니다. 프런트 엔드에서 전달된 쿼리 조건에 따라 SQL 문을 조합하고 페이징을 위한 LIMIT 및 OFFSET 키워드를 추가한 후 마지막으로 $db 객체를 통해 쿼리 메서드를 호출하여 SQL 문을 실행합니다.
2. Query
쿼리 기능을 구현할 때 일반적으로 쿼리 조건을 매개변수로 전달하고 쿼리 조건에 따라 필터링해야 합니다. 예를 들어, 제품 이름으로 검색하려면 사용자가 쿼리하려는 제품 이름을 입력할 수 있도록 프런트 엔드 페이지에 쿼리 상자를 추가해야 합니다. 그런 다음 프런트 엔드 페이지에서 전송된 쿼리 조건을 SQL 문으로 조합하고 마지막으로 쿼리 결과를 페이지에 표시합니다.
이제 구체적인 코드 구현을 살펴보겠습니다.
첫 번째는 쿼리를 위한 코드:
$name = $_GET['name'];
$sql = "SELECT count(*) as total FROM table WHERE name LIKE '%$name%'";
$result = $db->query($sql);
$row = $result->fetch_assoc();
$total = $row['total'];
로그인 후 복사
다음은 SQL 문을 조합하고 페이징을 수행하는 코드입니다.
$page = $_GET['page'] ? $_GET['page'] : 1;
$pagesize = 10;
$offset = ($page - 1) * $pagesize;
$sql = "SELECT * FROM table WHERE name LIKE '%$name%' ORDER BY id DESC LIMIT $offset, $pagesize";
$result = $db->query($sql);
로그인 후 복사
그 중 $name은 쿼리 키워드를 나타내며, LIKE 키워드를 통해 퍼지 매칭을 수행합니다. 프런트 엔드에서 전달된 쿼리 조건에 따라 SQL 문을 조합하고 페이징을 위한 LIMIT 및 OFFSET 키워드를 추가한 후 마지막으로 $db 객체를 통해 쿼리 메서드를 호출하여 SQL 문을 실행합니다.
요약
위는 PHP에서 쿼리로 페이징을 구현하는 구체적인 방법입니다. 실제 애플리케이션에서는 더 나은 사용자 경험과 성능을 달성하기 위해 특정 비즈니스 시나리오를 기반으로 최적화하고 개선해야 합니다. 위 내용이 모든 개발자에게 도움이 되기를 바랍니다.
위 내용은 PHP에서 페이징 및 쿼리 기능을 구현하는 방법을 설명하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!