+4

Criando uma simples paginação de resultados

criado por Diego Mascarenhas em 06/07/2002 1:04pm
Bom, primeiramente vamos ver o que é a famosa "paginação de resultados".

Muitos confundem Query String com Paginação de Resultados. Eu já fiz um artigo de query string uma vez (ex: page.php?secao=lalala) [ pode ser visto em http://phpbrasil.com/articles/article.php/id/128 ], agora irei explicar o que é paginação de resultados.

Paginação de resultados é uma coisa muito simples. Ela simplesmente faz uma busca em uma determinada tabela no banco de dados, neste caso estaremos usando o MySQL.

E a partir do resultado dessa busca, ela divide o número total de registros, por um número que você especificou para exibir por página.

Ex: 100 registros totais -> você quer exibir 10 por página -> 100/10 -> total de 10 páginas.

Bom, já expliquei o que é a paginação de resultados, mas como fazê-la?

Isso eu digo na próxima página, até lá.

Comentários:

Mostrando 1 - 10 de 24 comentários
Não entendi a função da variável pc.
24/10/2012 8:31pm (~12 anos atrás)

Ivo Borges disse:
Ja havia pesquisados vários scripts, mas o seu foi batata, simples e funcional.

Muito bom, usei e está funcionando, obrigado Diego.
27/10/2009 8:05pm (~15 anos atrás)

José Neto disse:
Muito bom, funcionou aqui!
Muito obrigado!
18/03/2009 4:02pm (~15 anos atrás)

galera se alguem conseguir fazer esse script rola em template php seria uma mao na roda...
segue o meu codigo

<?php
include_once('../inc/inc.configdb.php');
include_once('../inc/inc.lib.php');
include_once('../inc/class.TemplatePower.php');
$tpl = new TemplatePower('../tpl/lay.html');$tpl->assignInclude('conteudo', '../tpl/busca2.htm');
$tpl->prepare();

$busca = "SELECT * FROM categoria";
$total_reg = "10"; //
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");

$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas

// vamos criar a visualização
$tpl->newBlock('busca');

while ($dados = mysql_fetch_array($limite)) {
$tpl->assign('nome', $dados['cat_cat']);
$tpl->assign('id', $dados['idcategoria']);

}

// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
$tpl->assign('1', $anterior);

}
echo "|";
if ($pc<$tp) {
$tpl->assign('2', $proximo);
}


//fim do processamento ------

include('../inc/inc.mensagem.php');
$tpl->printToScreen();
?>

nao to conseguindo fazer o contador nos links proximo e anterior
blzao
27/09/2008 11:14pm (~16 anos atrás)

Eu fiz algumas alterações que achei interessantes a partir desta ultima versão dessa class para construir barras de navegação
25/02/2007 9:18pm (~18 anos atrás)

Igor Diniz disse:
qual os nomes dos documentos?? ou é tudo num só ?
04/07/2006 3:39pm (~18 anos atrás)

Muito bom o script, parabéns simples e eficaz
26/04/2006 11:11am (~18 anos atrás)

que raiva meu...esses caras acabam com a gente com esses tópicos....fiquei 2 horas pra fz isso, e ele me da o troço pronto assim...e funcionando...
21/03/2006 1:07pm (~19 anos atrás)

esta usando um outro, mais era na quela, peguei pronto e não sabia o que acontecia no script, com esse, eu tive oportunidade de aprender e poder criar o meu, nota 10 pra vc.
06/12/2005 3:17pm (~19 anos atrás)

Paulo Gabriel disse:
Já tentei vários código, inclusive este. As páginas são contadas corretamente mas tenho um problema: quando passo da página "x" para a "y", os resultados não aparecem. Uso o PHP5.
Alguem tem alguma idéia do que seja?
20/09/2005 10:46am (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)