문제

나는 이것이 혼란스러워 들린다는 것을 알고있다 : 나는 단지 MySQL에 대한 기본 이전/다음 페이지 화를 만들었고, 나의 행의 마지막 페이지가 .php? page = 5이고 누군가가 .php? page = 263을 넣는다면 알고 싶었다. .php? page = 5로 리디렉션합니다

이 작업을 수행하는 방법에 대한 아이디어. 현재 가지고있는 정보는 한계 이후에 얼마나 많은 행이 반환되는지. ... 한도는 10입니다 :)

미리 감사드립니다 !!

도움이 되었습니까?

해결책

이미 총 행 수가 있고 페이지 당 표시 될 행 수를 알고 있다면 마지막 페이지를 다음과 같이 계산할 수 있습니다.

$totalPages = ceil( $rows / $perPage );

그런 다음 현재 페이지를 합리적인 한도로 제한합니다.

$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );

다른 팁

가장 쉬운 일은 어떤 형태의 형태를 정의하는 것입니다. $max_page_number 변수, 페이지가 입력되었는지 확인하십시오 $_GET['page'] 가능한 최대 숫자보다 작거나 그렇지 않은 경우이를 보상하고 마지막 페이지로 리디렉션합니다.

$ max_page_number = 10; // 또는 최대/마지막 페이지 번호가 무엇이든, $ page_requested = $ _get [ 'page'];

if ($page_requested <= $max_page_number) {

// show the page requested by the user
}

elseif ($page_requested > $max_page_number) {

// redirect to the relevant page

}

else {

// redirect to the splash page, or first page

}

또한 사람들이 입장 할 수 없다는 점을 확인해야한다고 제안 할 가치가 있습니다. index.php?page=-10 잡히지 않으면 숫자를 확인해야합니다. 보다 적습니다 첫 페이지와 ~보다 큰 마지막 페이지.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top