Pages

12 de abr. de 2011

[PHP][MySQL] Paginação simples

Ctrl+c, Ctrl+c, galera!


Faz tempo que não posto nada, sinto muito! Tenho estudado muito FLEX (ActionScript 3.0 + MXML) e desenvolvendo componentes para a minha rede social, o ChoqueWeb ( www.choqueweb.com ). 


Meu antigo colega de trabalho Edson, estava me perguntando uma maneira simples de criar uma paginação utilizando PHP e  MySQL.


Para quem não conhece o que é paginação de dados, paginação de dados significa vc exibir grande volumes de dados em pedaços. 


Ainda em confusão?


É simples, por exemplo, vocês tem 19283981273918723 registros que precisam ser exibidos, por exemplo. Mas você não deseja exibir todas essas informações poluindo a tela do usuário final. Então o que você deve fazer? Exibir essas informações em pedaços! Por exemplo, exibindo em 50 em 50 registros, até chegar a quantidade total de registros que deseja exibir!


Se desejam implementar isso utilizando PHP, criei a pequena solução abaixo, que você deve colocar antes do seu comando sql ser executado:


Código
$sql = "seu select";
if(isset($_REQUEST['pg']) && isset($_REQUEST['pgn'])) {
    $sql = "select *, (select count(*) from ({$sql}) a) as qtdRegistros from ({$sql}) b  limit {$_REQUEST['pg']}, {$_REQUEST['pgn']}";
} Explicando Onde o $sql, logicamente seria a sua consulta, $_REQUEST['pg'] é a pagina da paginação, $_REQUEST['pgn'] é o numero de registros que serão visualizados por pagina. Quando a consulta for executada, será retornado a quantidade de registros. Com a quantidade de registros você pode fazer uma relação com a quantidade de registros que serão exibidos, para saber quantos registros você quer exibir. Existem outras maneiras para fazer a paginação de dados, mas essa é apenas uma delas. Espero ter ajudado!