Para melhor explicar como paginar registros, ainda uma dúvida para muitas pessoas, aí vai um artigo.

Gostaria de abordar algumas questões iniciais.

A condição "LIMIT inicio,termino" do MySQL, funciona da seguinte maneira:

SELECT * FROM tabela LIMIT 0,5



Acima o MySQL vai capturar os registros da linha 0 e vai avansar seu cursor 5 linhas, o que resultará na captura das linhas 0, 1, 2, 3 e 4.

SELECT * FROM tabela LIMIT 5,5



Acima o MySQL vai capturar os registros da linha 5 e vai avansar seu cursor 5 linhas, o que resultará na captura das linhas 5, 6, 7, 8 e 9.

Entendendo:
"LIMIT inicio,termino", na variável 'INICIO' eu só preciso informar o ponto de partida, e na variável 'TERMINO' eu só preciso informar o número de linhas que quero avançar a partir de 'INICIO'.

Agora vamos começar:

1º - Precisamos informar quantas linhas/registros do banco queremos mostrar, sendo assim;


pag_views = 10;
?>



2º - Agora vamos a um pequeno processo para evitar a página 0, isso é para que visualmente não fique confusa uma interpretação do número da página:

<?
If (!$pagina) {
$pagina = 1;
} else {
$pagina = $pagina;
}
?>



3º - Vamos calcular o valor da variável $inicio, essa variável é quem vai dizer onde o MySQL vai começar a capturar linhas;

<?
$mat = $pagina -1; //ASSIM INICIAREMOS DA LINHA ZERO DO BANCO
$inicio = $mat * $pág_views;
?>



Entendendo: Esse calculo é feito em 2 partes.
Vamos dizer que você está na 1ª página, sendo assim, $pagina = 1;
Para calcular $início devemos fazer o primeiro calculo,
$mat = $pagina -1
$mat = 1 -1
$mat = 0
Sendo assim,
$inicio = $mat * $pág_views
$inicio = 0 * 10
$inicio = 0

4º - Seleção de dados

<?
$sql = "SELECT * FROM tabela";
$query = mysql_query($sql);
?>



5º - Limitando a seleção

<?
$limita = "$sql LIMIT $inicio,$pág_views";
$executa = mysql_query($limita);
?>



Aceitando o exemplo acima do calculo da variável $inicio, começaremos da linha 0 e vamos avançar o cursor até $pag_views depois de $inicio.
Resultará nas linhas 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.

6º - Obtendo o número de linhas afetadas pela consulta, isso será útil para calcularmos quantas páginas terão esta consulta.

<?
$linhas = mysql_num_rows($query);
?>



Notem que executei $query, que seleciona todos os registros desta condição.

7º - Calculando o total de páginas

<?
$paginas = $linhas / $pág_views;
?>



Entendendo:
Supondo que $query resultou em 7.570
$paginas = $linhas / $pág_views
$paginas = 7570 / 10
$paginas = 757
Portanto teremos 757 páginas

8º - Criando os valores para o botão de voltar e para o botão de próxima página

<?
$volta = $pagina -1;
$próxima = $pagina +1;
?>



9º - Mostrando o resultado limitado

<?
while ($dado = mysql_fetch_array($executa)) {
echo $dado[nome_do_campo];
}
?>



10º - Exibindo o link para voltar uma página

<?
If ($volta>0) echo "Volta";
?>



Entendendo:
Vamos dizer que estamos na página 1, portanto $volta = 0, se volta for maior que 0, mostra o botão VOLTAR

11º - Exibindo o botão para cada uma das páginas

<?
For ($i = 0; $i <= $paginas; $i++){ //REPETE ATÉ QUE SE ACABEM AS PAGINAS
$pag = $i +1; //EVITA A PÁGINA
ZERO echo "$pág"; //MOSTRA O BOTÃO PARA A PÁGINA
}
?>



12º - Exibindo o botão para avançar uma página se ela existir.

<?
If ($pagina<$paginas) echo "Proxima";
?>



Quem estiver com mais dúvidas acesse meu site e cliquem no suporte on-line, terei o maior prazer em explicar mais... SoftwebSite .

Um grande abraço