Olá galera do Clube dos Geeks, hoje quero propor a construção de uma página web que liste itens de um banco de dados MySQL e faça a paginação destes itens, ou seja, separe-os por páginas de acordo com uma quantidade máxima estabelecida para as páginas.
Veja o DEMO | Download do arquivo
1 – Para começar você precisa ter instalado o programa WAMP SERVER em sua máquina, ou o LAMP em caso de Linux. Veja como instalar o Wamp;
2 – Agora abra o PhpMyAdmin no wamp digitando localhost/phpmyadmin em seu navegador de preferência, caso precise de login e senha, coloque root no usuário, e deixe a senha em branco;
3 – Crie um banco de dados com o nome de paginador, e uma tabela chamada itens, com os campos id: integer; nome:text; email: text; e insira 20 itens nesta tabela;
4 – Entre na pasta C:\wamp\www, e crie uma pasta chamada paginador, crie dentro dela um arquivo chamado index.php;
5 – No arquivo index.php iniciaremos com a conexão ao banco de dados dentro de uma tag php:
6 – Ainda nesta mesma tag faremos uma consulta ao banco de dados para saber qual a quantidade de itens salvos nele:
$sql_res=mysql_query("SELECT * FROM itens"); //consulta no banco
$contador=mysql_num_rows($sql_res); //Pegando Quantidade de itens
7 – Depois disso, ainda dentro da tag
if(empty($_GET[‘pag’])){
$pag=1;
}else{
$pag = “$_GET[pag]”;} //Pegando página selecionada na URL
if($pag >= ‘1’){
$pag = $pag;
}else{
$pag = ‘1’;
}
8 – Para por fim fecharmos a tag, criaremos as variáveis que determinarão o intervalo de busca no banco de dados e a que receberá a quantidade de páginas existentes.
$maximo=5; //Quantidade Máxima de posts por página
$inicio = ($pag * $maximo) - $maximo; //Variável para LIMIT da sql
$paginas=ceil($contador/$maximo); //Quantidade de páginas
9 – Depois vem a marcação HMTL da página, que deve ter um cabeçalho(head) e um corpo(body), o cabeçalho deve estar da seguinte forma:
Paginador
10 – No corpo da nossa página nós usaremos apenas duas tabelas, uma para listar os itens do banco de dados, e outra para distribuir os marcadores das páginas, além de um marcador superior que informará a página atual. Veja o código do marcador superior e da tabela de listagem:
ID | Nome | |
* Note que da linha 10 à 20 nós fazemos a busca no banco de dados, de acordo com os limites determinados pelas variáveis $inicio e $maximo. E mostramos os itens nas linhas 21 a 25, lembrando que estamos dentro de um laço while, que foi iniciado na linha 16.
11 – Depois vamos a tabela que mostra os marcadores de cada página. Note que são feitos vários testes condicionais para saber, por exemplo, se há um número maior de itens do que o máximo determinado.
Existe apenas uma única página | "; } else{ for($i=1;$i<=$paginas;$i++){ if($pag==$i){ echo "".$i." | "; }else{ echo "".$i." | "; } } } if($pag!=$paginas){ echo "Próxima Página | "; } ?>