Criando uma simples paginação de resultados
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á.
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á.
Páginas:
1
2
Não entendi a função da variável pc.
24/10/2012 8:31pm
(~12 anos atrás)
Ja havia pesquisados vários scripts, mas o seu foi batata, simples e funcional.
Muito bom, usei e está funcionando, obrigado Diego.
Muito bom, usei e está funcionando, obrigado Diego.
27/10/2009 8:05pm
(~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
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
(~17 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
(~18 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)
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?
Alguem tem alguma idéia do que seja?
20/09/2005 10:46am
(~19 anos atrás)