Paginação

Enviada por Andre 
Andre
Paginação
22 de September de 2005 às 08:54PM
eu tou com uma duvida como faço para fazer a paginação de proximo >> ou << voltar queria que mostrava 5 resultados por paginas pois o meu codigo é

<?
$hostname_config = "localhost";
$database_config = "base";
$username_config = "root";
$password_config = "";
$config = mysql_pconnect($hostname_config, $username_config, $password_config) or trigger_error(mysql_error(),E_USER_ERROR);
$bd = mysql_select_db("$database_config", $config);


$id_categoria = $_GET["id"];
$consulta = mysql_query("SELECT produto,img,descricao, preco, id FROM produtos WHERE id_categoria='$id_categoria' ORDER BY produto ASC") or die (mysql_error());
while($n = mysql_fetch_array($consulta)){
$id = $n["id"];
$produto = $n["produto"];
$img = $n["img"];
$descricao = $n["descricao"];
$preco = $n["preco"];

echo "<font face=Verdana, Arial, Helvetica, sans-serif size=2> <img src=$img> <br><b> Produto : </b> $produto <br> <b> Descrição : </b> $descricao <br> <b> Preço : </b> $preco <br><br> <font size=1><a href=\"listar.php?id_categoria=$id_categoria&id=$id\"><img src=images/comprar.gif> </a> </font><br>";
}
?>

:) obrigado !!
Thiago F. Pappacena
Re: Paginação
29 de September de 2005 às 01:27PM
No SELECT, use a clausula "LIMIT <x>, <y>" do MySQL, onde <x> é o número total de registros a serem retornados (no seu caso, 5) e <y> é apartir de qual linha contar os <x> resultados.

y voce gera da seguinte forma:
$y = ($paginaAtual -1) * 5; // supondo que a página 1 será sua primeira página e 5 seja o numero de registros por página

Assim, o LIMIT gerado para o SELECT seria:
Na pagina 1, ficaria algo como LIMIT 5, 0
Na página 2, ficaria algo como LIMIT 5, 5
Na página 3, ficaria algo como LIMIT 5, 10

O número da página você passa por parâmetro (por GET, por exemplo)

Entendeu? :)
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.