온우카 기드온은 수년간 웹 애플리케이션을 설계 및 코딩하고 복잡한 문제를 해결한 경험이 있는 프리랜서 풀 스택 개발자입니다. 그는 보안, 글쓰기, 새로운 기술에 대한 토론을 좋아합니다.

18485569 1371908909572883 6954592115736688669 n

많은 수의 문서를 다루는 애플리케이션을 구축할 때는 페이지 매김을 사용하여 페이지별로 행을 가져오는 것이 중요합니다.

이 글에서는 N1QL과 PHP로 작업할 때 페이지 매김을 구현하는 방법을 보여드리겠습니다.

N1QL에 대해 조금 알아보기

Couchbase N1QL은 JSON용 SQL을 확장하는 선언적 쿼리 언어입니다. 네이티브 프레임워크 및 언어 통합, 유창한 API 또는 JDBC/ODBC 드라이버를 통해 데이터를 쿼리할 수 있습니다. N1QL은 개발자에게 데이터를 쿼리하고 조작할 수 있는 표현력이 풍부하고 강력하며 완벽한 언어를 제공합니다.

전제 조건
  • 카우치베이스에 대한 기본 지식과 서버에 설정된 카우치베이스(카우치베이스 설치)
  • N1QL에 대한 기본 지식
  • PHP에 대한 기본 지식(모든 언어를 사용할 수 있으므로 선택 사항)
  • 사용 가능한 카우치베이스 SDK(여기로 이동)

우리가 구축할 것

이 글에서는 기본적으로 데이터베이스에서 데이터를 가져와서 페이지 번호를 매기고 표시하는 PHP 환경을 빠르게 설정해 보겠습니다.

환경 설정

1단계: 새 버킷 만들기

Couchbase 관리 영역에 로그인하여 새 버킷 이름을 만듭니다. 댓글 달기.

Screenshot from 2017 08 20 21 25 56

2단계: 새 버킷에 대한 인덱스를 만듭니다: 댓글 달기

쿼리 탭을 클릭하고 아래에 나열된 쿼리를 입력한 후 실행을 클릭합니다.

모든 것이 순조롭게 진행되면 문서 작성을 시작해도 좋습니다.

3단계: 프로젝트 스타터 파일 복제하기

이 튜토리얼에서 사용할 파일의 기본 파일 구조를 만들었습니다.

명령줄을 열고 github에서 리포지토리를 복제합니다.

이제 브라우저에서 방금 복제한 파일을 엽니다. 다음 페이지가 표시됩니다:

page

파일 구조

방금 복제한 리포지토리에는 3개의 PHP 파일이 포함되어 있습니다: config.php, db.phpindex.php.

그리고 config.php 파일은 데이터베이스의 정보를 정의하는 곳입니다:

에서 db.php를 클릭한 후 CouchBase에 연결하여 버킷을 열었으며, CouchBase 정보에 맞게 세부 정보를 변경해야 합니다.

HTML 코드가 있습니다.

두 파일을 포함했습니다, config.php 그리고 db.php 그런 다음 양식이 제출될 때 데이터베이스에 몇 가지 주석을 삽입하는 로직을 작성했습니다.

HTML 코드는 댓글을 추가하고 나열할 수 있는 양식을 표시합니다.

이제 시작해 보겠습니다!

페이지에서 원하는 만큼 댓글을 추가합니다. 곧 해당 데이터에 페이지 번호를 매길 예정입니다.

데이터베이스에서 페이지 매김된 콘텐츠 가져오기

의 헤더 부분에 다음을 추가합니다. index.php 는 상단의 모든 PHP 코드 아래에 있습니다.

위의 코드에 주석을 추가하여 각각의 기능을 설명했습니다. 여기에서는 LIMIT AND 오프셋 을 사용하여 각 쿼리가 반환해야 하는 결과의 수를 제한할 수 있었습니다. 오프셋은 현재 액세스 중인 페이지 번호에 따라 쿼리할 때 데이터의 양을 건너뛰는 데 사용되었습니다.

LIMIT: LIMIT 절은 SELECT가 결과 집합에서 반환할 수 있는 최대 개체 수를 지정합니다. 음수 값 또는 9223372036854775295(1 - 512의 결과)보다 큰 값은 LIMIT 0으로 간주됩니다.

오프셋: OFFSET 절은 건너뛸 개체 수를 지정합니다. LIMIT 절이 있는 경우 LIMIT보다 먼저 OFFSET이 적용됩니다. OFFSET 값은 음수가 아닌 정수여야 합니다.

쿼리 결과를 페이지에 채우기

아래 코드를 추가하여 index.php 이 태그 바로 뒤에 <h4 class="text-center">댓글 나열</h4> .

페이지 매김 링크 추가

이 HTML 태그 사이에 아래 코드를 추가합니다. <div id="pagination"> </div> 를 추가합니다.


 

여기서는 페이지의 페이지 수만 인쇄하고 있습니다.

예! 이제 페이지 매김이 작동합니다.

Peek 2017 08 23 19 35

결론

이 글에서는 N1QL을 사용하여 페이지 매김을 구현하는 방법을 배웠습니다. 또한 오프셋 그리고 LIMIT 그리고 기본적으로 N1QL을 사용하여 Couchbase에서 쿼리를 실행하는 방법을 설명합니다. 전체 앱은 여기에서 다운로드할 수 있습니다: (git@github.com:dongido001/php-couchbase-pagination_complete.git)

읽어주셔서 감사합니다. 여러분의 의견이나 궁금한 점이 있으면 알려주세요.

이 게시물은 카우치베이스 커뮤니티 글쓰기 프로그램의 일부입니다.

작성자

게시자 Laura Czajkowski, 개발자 커뮤니티 관리자, Couchbase

로라 챠코브스키는 카우치베이스의 Snr. 개발자 커뮤니티 매니저로 카우치베이스의 커뮤니티를 총괄하고 있습니다. 그녀는 월간 개발자 뉴스레터를 담당하고 있습니다.

댓글 남기기