user redirecionamento para a última página no meu pagination
-
06-07-2019 - |
Pergunta
Eu sei que isso parece confuso: Acabo construiu alguns anterior / seguinte pagination básica para mysql e eu queria saber, se a última página de minhas linhas é .php? Page = 5 e alguém coloca .php? Page = 263, então eu quero redirecioná-los para .php ? page = 5
Algumas ideias sobre como fazer isso .. a informação que eu tenho atualmente é, quantas linhas são retornadas após o limite para que se fosse .php? Page = 263, então seria 0 Eu também tenho o número total de linhas no meu banco de dados ... o limite é de 10:)
Agradecemos antecipadamente !!
Solução
Se você já tem o número total de linhas, e você sabe quantas linhas você vai estar exibindo por página, então você pode calcular a última página assim:
$totalPages = ceil( $rows / $perPage );
Em seguida, basta restringir a página atual a um limite razoável:
$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$page = min( max( $page, 1 ), $totalPages );
Outras dicas
A melhor coisa a fazer é definir algum tipo de variável $max_page_number
, em seguida, verificar que a página entrou $_GET['page']
é menor que o número máximo possível, ou, se não, compensar isso e redirecionamento para a última página:
$ max_page_number = 10; // ou qualquer que seja o número máximo / última página é, $ 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
}
também vale a pena sugerindo que você deve verificar as pessoas não podem entrar index.php?page=-10
sem ele ser capturado, para que você realmente deve verificar para números menos de a primeira página e maior que sua última página.