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 !!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top