Meta-Commerce 개발자센타

  • META-Commerce
  • 주요 Flow
  • 개발 지침
  • 데이터베이스 레퍼런스
    • 데이터베이스 환경설정
    • 쿼리 실행
    • 쿼리 결과 생성
    • 쿼리 빌더 (Query builder)
    • DB 암호화
    • 서브 쿼리 (Sub query)
    • 트랜잭션
    • pagination
    • MYSQL JSON
  • Class와 Helper
Metacommerce
  • Docs »
  • 데이터베이스 레퍼런스 »
  • pagination

pagination¶

  • DB 사용 예

쿼리 빌더는 매우 단순한지만 유연한 페이지 관련 함수를 제공합니다.

$this->qb->setTotalRows()

검색된 전체 열의 수를 설정합니다.

$this->qb->pagination()

페이징 관련 연관배열을 반환합니다. 첫 번째 파라미터는 현재 페이지 번호, 두 번째 파라미터는 한 페이지에 표시할 줄 수입니다. 연관배열은 아래와 같이 구성되어 있습니다.

$this->qb->setTotalRows(1000);
$this->qb->pagination(20, 15);

// 결과
[
    'first_page' => 1,
    'prev_jump' => 9,
    'prev_page' => 19,
    'cur_page' => 20,
    'next_page' => 21,
    'next_jump' => 31,
    'last_page' => 67,
    'page_list' => [ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
    'per_page' => 15,
    'qry_str' => '',
    'offset' => 285
]

각 컬럼별 설명은 아래와 같습니다.

Key 설명
first_page 첫 번째 페이지
prev_jump per_page 단위 이전 페이지
prev_page 이전 페이지
cur_page 현재 페이지
next_page 다음 페이지
next_jump per_page 단위 다음 페이지
last_page 마지막 페이지
page_list 출력될 페이지 연관배열
per_page 한 페이지당 출력될 줄 수
offset limit offset
qry_str 검색에 필요한 query string (사용안함)

DB 사용 예¶

// 쿼리를 재사용하기 위해 쿼리 빌더 캐싱 사용
$this->qb->startCache();

$this->qb
    ->from('myTable')
    ->where('id', 1);

if ($status != '') {
    $this->qb->where('status', $status);
}

// 쿼리 빌더 캐싱 정지
$this->qb->stopCache();

// 전체 열의 수
$tRowCnt = $this->qb->getCount();

// 페이징 설정
$paging = $this->qb
    ->setTotalRows($tRowCnt)
    ->pagination($cur_page, $per_page); // $cur_page : 현재 페이지, $per_page : 페이지당 표시할 줄수

// limit 값 산출
$limit = $per_page;
$offset = $paging['offset'];

// Limit 설정을 통한 데이터 검색
$rows = $this->qb
    ->select('name')
    ->select('address')
    ->select('tel')
    ->orderBy('id', 'desc')
    ->limit($limit, $offset)
    ->exec()
    ->getResultArray();

// 쿼리 빌더 캐시 리셋
$this->qb->flushCache();

$data = [
    'list' => $rows
    , 'paging' => $paging
]
Next Previous

© Copyright COPYRIGHT © FORBIZKOREA CO., LTD. All RIGHTS RESERVED.. 최종 업데이트: 2021-01-07

Built with Sphinx using a theme provided by Read the Docs.