Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Moraes

Paginação com Banco de Dados PHP

Recommended Posts

Fala ai galera, beleza? Sou novo nessa área eu queria fazer esse meu código que exibe os dados de uma tabela do banco de dados MySQL.

Esta funcionando certinho.. só que eu queria que ela mostrasse apenas 15 dados e depois fosse pra pagina 2 e mostrava o resto....

Já pesquisei e tals mas não to conseguindo :/

Será que alguém pode me dar uma força?

 

Meu código:

 

<?php
$link = mysql_connect('localhost','root','97140891');
 
// Seleciona o Banco de dados através da conexão acima
 
 
$conexao = mysql_select_db('ricardo',$link); if($conexao){
 
$sql = "SELECT Codigo,Descricao,MateriaPrima,Processo,Pintura,ServicosTerceiros,Despesa,CustoFinal FROM produtos";
 
$consulta = mysql_query($sql);
 
echo '
<style>
.tabela { position:relative; margin-left:60px; margin-top:-7px;}
.linha { font-family: "Lucida Grande", "Lucida Sans Unicode", sans-serif;
		 font-size:13px;
		 padding-left:5px;
		 padding-top:3px;
		 border-left:1px solid #cdcdcd;
}
.linha2 { font-family: "Lucida Grande", "Lucida Sans Unicode", sans-serif;
		 font-size:13px;
		 padding-left:5px;
}
</style>';
 
echo '<table class="tabela">';
 
echo '<tr>';
 
echo '<td class="linha" width="127">Código</td>';
 
echo '<td class="linha" width="300">Descrição</td>';
 
echo '<td class="linha" width="127">Venda 1</td>';

echo '<td class="linha" width="127">Venda 2</td>';

echo '<td class="linha" width="125">Venda 3</td>';
 
echo '</tr>';
 
// Armazena os dados da consulta em um array associativo
 
while($registro = mysql_fetch_assoc($consulta)){
 
$venda1 = $registro["CustoFinal"]*(75/100); 
$venda2 = $registro["CustoFinal"]*(60/100); 
$venda3 = $registro["CustoFinal"]*(50/100); 
 
echo '<tr>';
 
echo '<td class="linha2">'.$registro["Codigo"].'</td>';
 
echo '<td class="linha2">'.$registro["Descricao"].'</td>';
 
echo '<td class="linha2">'.$venda1.'</td>';

echo '<td class="linha2">'.$venda2.'</td>';

echo '<td class="linha2">'.$venda3.'</td>';
 
echo '</tr>';
 
}
 
echo '</table>';
 
}
?>

 

MUITO OBRIGADO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá lucas!

 

respondendo sua dúvida, qui vai:

 

 

$sql = "SELECT Codigo,Descricao,MateriaPrima,Processo,Pintura,ServicosTerceiros,Despesa,CustoFinal FROM produtos";

$rodar = mysql_query($sql);

 

seguinte, a lógica do algorítimo é fazer você contar o número de registros e dividir-los pelo numero de resultados por página que você queira. E com esse resultado, vai formando os indices. Ex

 

/* uma página que tenha 100 registros e você quer separar em 10 por página. Então você vai fazer 100 / 10, que dará 10 páginas. Mas como ficaria isso no PHP / MySQL?! vou "codificar"

 

primeiramente, vou fazer o paginador, aqueles numerozinhos */

 

$total = ceil(mysql_num_rows($rodar) / 10);

 

for($i=0; $i<total; $i++){

$tripa .= "<a href='pagina.php?pag=".$i."'>".$i."</a> ";

}

 

// ok está pronto o paginador, agora vou fazer que a pagina vai processar a paginação. (pagina.php)

 

$LINHA = $_GET['pag'];

 

$sql = "SELECT Codigo,Descricao,MateriaPrima,Processo,Pintura,ServicosTerceiros,Despesa,CustoFinal FROM produtos LIMIT ($LINHA, 10)";

$rodar = mysql_query($sql);

//esse vai ser o loop que vai mostrar os dez resultados

for($i=0;$i<mysql_num_rows($rodar);$i++){

//aqui você formata conforme seu gosto...

}

 

Ok algoritimo feito, agora vou comentar algumas funções:

 

propriedade limit(linha de começo, delimitador), é o que você usa para delimitar suas consultas em uma query. ex: limit (0, 10) -> vai da linha 0 até 10 linhas, limit (10, 10), vai da décima linha até a vigésima linha e assim por diante.

 

ceil, é uma função que arredonda os decimais para cima, fundamental na construção de paginadores.

 

bem! maiores dúvidas você pode nos contactar e também ver algumas funções em php.net.

 

Espero ter ajudado :D

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.