2012-02-23 3 views
0

배열 페이지 매김 작업 중입니다. 방정식을 만드는 데 문제가 있습니다. 배열 페이지 매기기 - 작성 수식

가 어떻게이 if else 블록을 작성하려면 어떻게해야합니까 $CurrentPage = 1 다음 $Start = 1, 다음 $Start = 6, $CurrentPage = 3 경우 $Start = 11, 다음 $Start = 16 등의 경우 .. $CurrentPage = 2 경우 때 내가 원하는 것은?

답변

1

어떻게 단순히

$Start = $CurrentPage * 5 - 4; 
+0

캔트 (Cant)는 그것이 얼마나 단순하고 얼마나 멍청한 지 믿습니다 !! :) 고마워요 @ 보 로딘 – skos

+0

@confused_developer : 이런 일들을 보는 것은 실천입니다. 나는 당신이 당신의 SO 태그를 바꾸는 것을 제안한다. 그렇지 않으면 당신이 최고가 될 때 당신을 기다릴 것이다. – Borodin

+0

다른 바보 같은 질문에 대해 유감스럽게 생각합니다. 그러나 SO 태그는 무엇입니까? – skos

2

당신은 최소 또는 최대 페이지 번호로 코드 indepent하게 전혀 필요

$Start = ($CurrentPage - 1) * 5 + 1; 

없음 if else 블록을 쓸 수 없습니다. 나중에 마법 수인 5을 쉽게 페이지 당 항목 수로 변경할 수 있습니다.

+0

예 @hakre 네가 맞다면, else if 블록이 필요 없다. 그리고 그 매직 넘버 5는 실제로'$ RowsPerPage'이며, 간단하게 유지하려고합니다. 그리고 고마워요 – skos

+0

당신은 또한 배열 페이지 매김을 썼고 좋은 ['array_chunk'] (http://php.net/array_chunk) 함수도 보았습니다. 페이지 매김에 잘 맞습니다. 또 다른 유용한 점은 ['LimitIterator'] (http://php.net/LimitIterator)입니다. – hakre

0

다른 블록, 단지 수학 경우 필요하지 않은 : 당신이 원하는 무엇

$Start = ($CurrentPage-1)*5+1; 
1

$firstItem = ($pageNumber - 1) * $pageSize; 

이다 이것은 0부터 시작하는 인덱스 될 것이다. 1부터 시작하려면 원한다면 하나를 더하십시오.

0

난 당신이 바로, 페이지 크기와 페이지 매김을하고 있습니다 생각은 어떻습니까? 그렇다면 내 솔루톤이 있습니다 :

$pageSize = 5; 
$start = ($currentPage - 1) * $pageSize + 1; 

왜 $ 시작이 1 일 필요합니까? PHP의 배열은 인덱스 0부터 시작하기 때문에 다음과 같이 처리해야합니다.

$start = ($currentPage - 1) * $pageSize;