Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Borel

Fazer paginação com tabelas

Recommended Posts

No resultado de uma consulta tenho 16 valores diferentes. Estou querendo fazer paginação com estes valores exibindo 6 valores em cada página totalizando 3 páginas. Gostaria de saber como montar as 3 tabelas, sendo uma para cada página aonde estariam os valores da consulta. Lembrando que a última tabela ficará com células em branco na segunda linha.Gostaria que alguém pudesse me ajudar ou indicar onde encontrar algo parecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

 

//conexão com BD etc...

 

 

//Consulta

 

$sql = "select * from nome_tabela where name=$name"; //Exemplo

 

 

$sql_resultads = mysql_query($sql); //Transfere resultados de $sql para $sql_resultads

 

$linhas = mysql_num_rows($sql_resultads);//Transfere nº de linhas para a variável $linhas

 

$linhasini = 1;

 

if (($sql_resultads) and ($linhas)) { //Verifica se existem resultados na pesquisa.

 

 

} else {

echo "<hr>";

echo "<b>Desculpe. Não existem resultados.</b>";

echo "<hr>";

 

echo "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><a href='/search.php'>Retorna</a></font>";

echo "<hr>";

 

}

 

 

$lpp = 10; //Especifica quantos resultados queremos ver por página aberta.

 

$total = mysql_num_rows($sql_resultads); //Esta função irá retornar o total de linhas na tabela..

 

$paginas = ceil($total / $lpp); //Retorna o total de páginas..

 

if(!isset($pagina)) { $pagina = 0;} //Especifica um valor para a variável $pagina, caso

//a mesma não esteja setada.

 

$inicio = $pagina * $lpp; //Retorna qual será a primeira linha a ser mostrada no MySQL.

 

 

$sql = mysql_query("select * from nome_tabela where name=$name $inicio,$lpp"); // Repete consulta, desta vez com as variáveis de controle $inicio e $lpp.

 

 

echo "<p align='center'><b>Foram encontrados $linhas resultados.</b></p>";

 

//Cria os arrays com os nome dos campos do BD, que deverão ser identicas aos locais da tabela em HTML.

 

while($dados = mysql_fetch_array($sql)) {

$name = $dados['name'] ;

^

^ // repita aqui outros campos que você tenha em seu BD.

^

^

 

//Tabela em HTML

 

echo "<div align='center'><table width='95%' border='0' cellspacing='0'bordercolor='#FFFFFF'";

echo "<tr bgcolor='#FCE4B8'>";

echo "<td width='10%'height='29'>";

echo "<div align='center'><font face='Arial, Helvetica, sans-serif'><b>Nome</b></font></div>";

echo "</td>";

 

 

 

 

echo " <tr bgcolor='#99FFFF'>";

echo " <td width='13%'height='29'><div align='center'><font face='san-serif'size='1'>$name</font></td>" ;

 

 

$linhasini ++ ; //incrementa a variável $linhasini

$dados = mysql_fetch_array($sql_resultads); //transfere os dados do array para $dados.

 

}

 

echo "</table>";

echo "<br>" ;

echo "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><a href='search.php'>Retorna</a></font>";

 

 

 

?>

<div align="center">

<?

 

if ($pagina > 0) {

$menos = $pagina - 1;

//$url = "$PHP_SELF?pagina=$menos";

$url = "$PHP_SELF?pagina=$menos&nome=$nome";

 

echo " <a href='$url'>Anterior</a>"; //Vai para a pagina anterior.

 

}

 

 

for ($i=1; $i<$paginas; $i++) {//Gera um loop com o link para as páginas

 

//$url = "$PHP_SELF?pagina=$i";

$url = "$PHP_SELF?pagina=$i&nome=$nome";

echo " | <a href='$url'>$i</a>";

 

}

 

if ($pagina < ($paginas - 1)) {

$mais = $pagina + 1;

//$url = "$PHP_SELF?pagina=$mais";

$url = "$PHP_SELF?pagina=$mais&nome=$nome";

echo " | <a href='$url'>Proxima</a>"; //Vai para a próxima pagina.

 

}

 

?>

 

 

Bom, espero que este exemplo lhe sirva para ter uma idéia de como se faz este tipo de consulta. Aconselho tbm a aquisição de Tutoriais sobre PHP/MySQL. Aqui mesmo no fórum v. pode encontra e em outros fóruns, tais como o http://forum.wmonline.com.br e outros. Se você ainda não tem, isntale um servidor local para testes. Um muito bom é o Easyphp, que você pode baixar em http://www.easyphp.org. Qualquer dúvida é só postar.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.