테이블에서 20 레코드 만 선택하고 페이지 당 5 레코드를 표시하는 페이지 매기기를 추가해야합니다. 페이지 매기기에서 LIMIT을 사용하지만 먼저 20 개의 레코드를 가져와 20 개의 레코드에 페이지 매기기를 추가해야합니다.PHP 페이지 매김 제한된 수의 레코드에만 적용
답변
한 번에 20 개의 레코드를 선택한 다음 array_slice을 사용하여 페이지 매김을 수행 할 수 있습니다.
편집 : 왜이 한계가있다? 제한은 다음과 같아야합니다.
1st page: LIMIT 0, 5
2nd page: LIMIT 5, 5
3rd page: LIMIT 10, 5
4th page: LIMIT 15, 5
가장 최근에 추가 된 20 권의 책을 보여주고 싶습니다. 한 페이지 당 5 개씩 보여주고 싶습니다. 그래서 실제로 2 개의 제한이 있습니다. 첫 번째 제한은 20 레코드를 얻고 페이지 당 5 레코드를 표시하는 페이지 매김을 추가하는 것보다 우선합니다. 나는 이것을 달성하는 방법을 모른다. 내가 배열 슬라이스를 사용하고 싶지 않다. –
@KhawerZeshan 하나의 쿼리 만 사용하고 싶지 않으므로 문제가 무엇인지 알고 싶다면 정상적인 페이지 매김 사용 제한과 오프셋을 사용해서는 안됩니까? – xdazz
혼란의 근원에 대해 확실치 않은 @KhawerZeshan. – verisimilitude
두 개의 쿼리를 사용하십시오. 하나는 레코드의 총 개수를 가져옵니다 (개수가 포함 된 행 하나만 반환합니다). 그런 다음 LIMIT을 사용하여 페이지 매김을 선택하십시오.
나는 그것에 대해 기본적인 생각을 할 것이다.
1) 많은 많은 행이 테이블에 (단순있다 알아 -
SELECT COUNT(*)
In your case it is 20.
2) 당신은 당신이 가고 싶은 행 수 페이지 당 기반으로 표시 할 페이지 수를 알아 에 대한.
intPages = ceil(intTotalRecords/8)
따라서이 부 분값이 9.5이면 10을 페이지 수로 간주하므로 모든 부동 소수점은 ceil()입니다.
3) 현재 사용중인 페이지를 확인하십시오. 4) 조회에 전송할 한계 및 오프셋 (페이지 번호에 따라 다름)을 확인하십시오. 다음 줄에 뭔가가 있습니다.
intLimit = 8;
intOffset = (intCurrentPage - 1) * intRowsPerPage;
5) 현재 페이지
6) 정보를 표시하기위한 행을 잡아 당깁니다. (페이지 네이션 링크도 루핑하여)
이전/다음 페이지가 1을 넘거나 최대 페이지 수를 초과하는지 확인하고 이에 따라 intCurrentPage
값을 설정해야합니다.
업데이트 : 테이블에서 레코드의 마지막 20 블록을 가져 오려면.
SELECT <column_names> FROM <table_name>
<optional_where_clause_goes_here>
ORDER BY <primary_autoincrement_id_field> DESC
LIMIT 20;
또는
SELECT <column_names> FROM <table_name>
WHERE <certain_conditions_here>
and <primary_autoincrement_id_field> >= (select max(<primary_autoincrement_id_field>) from <table_name>) - 20
는 AUTO_INCREMENT해야하는 필드 <primary_autoincrement_id_field>
입니다 내가 게시 위의 쿼리의 각 종속있다.
테이블에서 총 수를 얻을하고 배열
$array = pagination(200000);
을 반환하고 당신이 쓸 수있는 매김이 페이지 매기기에 다른 배열 indexex를 사용할 수있는 쿼리도
$query = "SELECT * FROM your_table ".$array['querylimit'];
처럼이 함수를 호출 처음 .
function pagination($totalRows, $perPage = 20){
$page = (isset($_POST['pagination']['page'])) ? intval($_POST['pagination']['page']) : 0;
$perPage = intval($perPage);
if($perPage == 0){
$perPage = 20;
}
if(intval($page) < 0){
$page = 1;
}
if (ceil($totalRows/$perPage) < intval($page)){
$page = ceil($totalRows/$perPage);
}
if (!$page){
$page = 1;
}
$prev = $page - 1;
$next = $page + 1;
if(intval($prev) < 0){
$prev = 1;
}
$min = (($page - 1) * $perPage);
if(ceil($totalRows/$perPage) < $next){
$next = 0;
}
$end = $min+$perPage;
if($end > $totalRows){
$end = $totalRows;
}
$start = $min+1;
$return['showing'] = "$start-$end of $totalRows";
$return['querylimit'] = " LIMIT $min, $perPage";
$return['next'] = $next;
$return['prev'] = $prev;
return $return;
}
- 1. 드루팔 (Drupal에서 제한된 수의 페이지 만 생성하십시오.
- 2. PHP 페이지 매김 추가하기
- 3. PHP 페이지 매김
- 4. 배열에서 페이지 매김 PHP
- 5. PHP 페이지 매김 스크립트는
- 6. 유연한 PHP/MySQL 페이지 매김
- 7. MySQL/PHP - 페이지 매김, 정렬
- 8. PHP 페이지 매김 링크 생성
- 9. PHP MySQL 페이지 매김 결과
- 10. PHP 페이지 매김 쿼리가 실패했습니다
- 11. HTML 양식, PHP 페이지 매김
- 12. PHP 페이지 매김 문제, 공백 페이지 제공
- 13. PHP 페이지 매김 - 현재 페이지 감지
- 14. PHP 또는 jQuery/PHP 페이지 매김
- 15. 페이지 매김
- 16. MongoDB 제한된 수의 인덱스로 제한
- 17. 제한된 수의 문자는 어떻게 인쇄합니까?
- 18. HTML 제한된 수의 옵션을 선택하십시오.
- 19. Sqlalchemy에서 제한된 수의 컬렉션을로드하는 방법?
- 20. 매김 페이지
- 21. 제한된 수의 레코드를 레일 3에 표시합니다 (페이지 매김이 아님)
- 22. Wordpress 페이지 매김 루프 페이지 매김 html이 참일 경우 표시
- 23. 페이지 페이지 매김 jquery
- 24. Jquery 페이지 매김
- 25. 이 페이지 매김 젠드
- 26. PHP에서 페이지 매김
- 27. last.fm API 페이지 매김
- 28. PHP/MySQL 페이지 매김 또는 jQuery?
- 29. 임의로 주문한 PHP 페이지 매김 레코드 세트
- 30. PHP 페이지 매김 코드가 작동하지 않습니다
내가 설명하려고하는 문제를 오해하고 있습니다. 나는 페이지 매김을하는 방법을 알고 싶지 않다. 나는 페이지 매김을하는 방법을 안다. 하지만 테이블의 마지막 20 개 레코드에 페이지 매김을하고 싶습니다. 페이지 매김을하는 방법을 알려주지 않고 이것을 달성하는 방법을 이해하도록 도와주십시오. 덕분에 –
그래서 당신의 문제가 올바른 테이블의 마지막 20 레코드를 가져 오는 것 같아? 아래에 업데이트 된 답변을 확인하십시오. – verisimilitude