21 de agosto de 2013

Paginação PHP

Neste tutorial vou apresentar um código para Paginação PHP bem simples.

Para manter a simplicidade eu não inclui as setas para anterior e próximo, mas apenas a numeração das páginas.

Caso queira uma paginação mais completa basta acessar a continuação deste tutorial de paginação PHP.

Vamos ao código da paginação:

Arquivo paginacao.php

<?php 
    // conexão com o banco de dados 
    mysql_connect("localhost","root",""); 
    mysql_select_db("banco_teste");
    
    //verifica a página atual caso seja informada na URL, senão atribui como 1ª página 
    $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1; 

    //seleciona todos os itens da tabela 
    $cmd = "select * from produtos"; 
    $produtos = mysql_query($cmd); 

    //conta o total de itens 
    $total = mysql_num_rows($produtos); 

    //seta a quantidade de itens por página, neste caso, 2 itens 
    $registros = 2; 

    //calcula o número de páginas arredondando o resultado para cima 
    $numPaginas = ceil($total/$registros); 

    //variavel para calcular o início da visualização com base na página atual 
    $inicio = ($registros*$pagina)-$registros; 

    //seleciona os itens por página 
    $cmd = "select * from produtos limit $inicio,$registros"; 
    $produtos = mysql_query($cmd); 
    $total = mysql_num_rows($produtos); 
    
    //exibe os produtos selecionados 
    while ($produto = mysql_fetch_array($produtos)) { 
        echo $produto['id']." - "; 
        echo $produto['nome']." - "; 
        echo $produto['descricao']." - "; 
        echo "R$ ".$produto['valor']."<br />"; 
    } 
    
    //exibe a paginação 
    for($i = 1; $i < $numPaginas + 1; $i++) { 
        echo "<a href='paginacao.php?pagina=$i'>".$i."</a> "; 
    } 
?>

Você irá precisar criar uma tabela no banco de dados para poder testar esta Paginação PHP.

Note também que eu estou me conectando ao banco de dados local com um usuário padrão, você terá que alterar as configurações de acordo com sua conexão.

Segue a criação da tabela e a insersão de alguns dados para facilitar:

CREATE TABLE `produtos` ( 
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `nome` varchar(50) DEFAULT NULL, 
    `descricao` text, 
    `valor` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 

insert into `produtos`(`id`,`nome`,`descricao`,`valor`) 
    values (1,'Caneta','Caneta azul','3,00'); 
insert into `produtos`(`id`,`nome`,`descricao`,`valor`) 
    values (2,'Caderno','Caderno 200 páginas','8,00'); 
insert into `produtos`(`id`,`nome`,`descricao`,`valor`) 
    values (3,'Borracha','Borracha para lápis','1,00');
insert into `produtos`(`id`,`nome`,`descricao`,`valor`) 
    values (4,'Mochila','Mochila escolar preta','35,00');

Visualizações: 27.957



Sérgio Toledo | Full-Stack Web Developer | LinkedIn | GitHub | YouTube

Todos os direitos reservados ©