Criando uma simples paginação de resultados
Bom, agora vamos a prática.
Primeiramente realize a conexão ao MySQL.
Agora vamos criar a cláusula SQL que deve ser executada.
Vamos ao trabalho... Especifique o total de registros a serem exibidos por página:
Se a página não for especificada a variável "pagina" tomará o valor 1 (isso evita de exibir a página 0 de início)
Vamos determinar o valor inicial das buscas limitadas.
Vamos selecionar os dados e exibir a paginação.
Prontinho. Simples, não?
Logo venho com mais dicas para uma paginação de resultados mais avançada. Espero que isso já sirva como base para uma melhora nos seus scripts.
Primeiramente realize a conexão ao MySQL.
<?php $conn = mysql_connect("host","user","senha"); $banco = mysql_select_db("bancodedados"); ?>
Agora vamos criar a cláusula SQL que deve ser executada.
<?php $busca = "SELECT * FROM tabela"; ?>
Vamos ao trabalho... Especifique o total de registros a serem exibidos por página:
<?php $total_reg = "10"; // número de registros por página ?>
Se a página não for especificada a variável "pagina" tomará o valor 1 (isso evita de exibir a página 0 de início)
<?php if (!$pagina) { $pc = "1"; } else { $pc = $pagina; } ?>
Vamos determinar o valor inicial das buscas limitadas.
<?php $inicio = $pc - 1; $inicio = $inicio * $total_reg; ?>
Vamos selecionar os dados e exibir a paginação.
<?php $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 while ($dados = mysql_fetch_array($limite)) { $nome = $dados["nome"]; echo "Nome: $nome<br>"; } // agora vamos criar os botões "Anterior e próximo" $anterior = $pc -1; $proximo = $pc +1; if ($pc>1) { echo " <a href='?pagina=$anterior'><- Anterior</a> "; } echo "|"; if ($pc<$tp) { echo " <a href='?pagina=$proximo'>Próxima -></a>"; } ?>
Prontinho. Simples, não?
Logo venho com mais dicas para uma paginação de resultados mais avançada. Espero que isso já sirva como base para uma melhora nos seus scripts.
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
(~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)
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)