Paginação com qualidade em PHP
Publicado por Eliel Ulisses Falcucci de Paula 01/03/2006
[ Hits: 7.338 ]
Homepage: www.elieldepaula.com.br
Este é mais um script da minha coleção particular, ele faz uma paginação de qualidade sobre os dados de um banco MySQL.
O código como sempre está muito comentado e é altamente indicado para os iniciantes.
Dúvidas email-me on:
elieldepaula@gmail ou contato@whdesign.com.br
Posts: www.whdesign.com.br/forum
Abraços.
<?php /* Palmas - TO | 01 de Março de 2006. Programa que exibe uma lista de registros em um banco de dados MySQL e faz a paginação. Crie um banco de dados e use esse dump que mando logo abaixo. Qualquer dúvida email-me: Eliel de Paula | contato@whdesign.com.br ######### DUMP ######### # # Estrutura da tabela `fotos` # CREATE TABLE fotos ( cod_foto int(11) NOT NULL auto_increment, fot_foto char(40) NOT NULL default '', fot_click char(40) NOT NULL default '', cob_pasta char(40) NOT NULL default '', PRIMARY KEY (cod_foto) ) TYPE=MyISAM; # # Extraindo dados da tabela `fotos` # INSERT INTO fotos VALUES (1, '1', '3', 'novo'); INSERT INTO fotos VALUES (2, '2', '6', 'novo'); INSERT INTO fotos VALUES (3, '3', '0', 'novo'); INSERT INTO fotos VALUES (4, '4', '1', 'novo'); INSERT INTO fotos VALUES (5, '5', '10', 'novo'); INSERT INTO fotos VALUES (6, '6', '14', 'novo'); INSERT INTO fotos VALUES (7, '1', '7', 'teste'); INSERT INTO fotos VALUES (8, '2', '3', 'teste'); INSERT INTO fotos VALUES (9, '3', '4', 'teste'); INSERT INTO fotos VALUES (10, '4', '3', 'teste'); INSERT INTO fotos VALUES (11, '5', '15', 'teste'); INSERT INTO fotos VALUES (12, '6', '23', 'teste'); INSERT INTO fotos VALUES (13, '1', '0', 'teste_2'); INSERT INTO fotos VALUES (14, '2', '0', 'teste_2'); INSERT INTO fotos VALUES (15, '3', '0', 'teste_2'); INSERT INTO fotos VALUES (16, '4', '0', 'teste_2'); INSERT INTO fotos VALUES (17, '5', '0', 'teste_2'); INSERT INTO fotos VALUES (18, '6', '0', 'teste_2'); INSERT INTO fotos VALUES (19, '1', '0', 'eliel'); INSERT INTO fotos VALUES (20, '2', '0', 'eliel'); INSERT INTO fotos VALUES (21, '3', '0', 'eliel'); INSERT INTO fotos VALUES (22, '4', '0', 'eliel'); INSERT INTO fotos VALUES (23, '5', '0', 'eliel'); INSERT INTO fotos VALUES (24, '1', '0', 'eliel'); INSERT INTO fotos VALUES (25, '2', '0', 'eliel'); INSERT INTO fotos VALUES (26, '3', '0', 'eliel'); INSERT INTO fotos VALUES (27, '4', '0', 'eliel'); INSERT INTO fotos VALUES (28, '5', '0', 'eliel'); INSERT INTO fotos VALUES (29, '1', '0', 'teste_4'); INSERT INTO fotos VALUES (30, '2', '0', 'teste_4'); INSERT INTO fotos VALUES (31, '3', '0', 'teste_4'); INSERT INTO fotos VALUES (32, '4', '0', 'teste_4'); INSERT INTO fotos VALUES (33, '5', '0', 'teste_4'); INSERT INTO fotos VALUES (34, '6', '0', 'teste_4'); INSERT INTO fotos VALUES (35, '7', '0', 'teste_4'); INSERT INTO fotos VALUES (36, '8', '2', 'teste_4'); INSERT INTO fotos VALUES (37, '9', '2', 'teste_4'); INSERT INTO fotos VALUES (38, '10', '2', 'teste_4'); INSERT INTO fotos VALUES (39, '1', '0', 'teste'); INSERT INTO fotos VALUES (40, '2', '0', 'teste'); INSERT INTO fotos VALUES (41, '3', '0', 'teste'); INSERT INTO fotos VALUES (42, '4', '0', 'teste'); INSERT INTO fotos VALUES (43, '5', '0', 'teste'); INSERT INTO fotos VALUES (44, '6', '0', 'teste'); ########## FIM DO DUMP ######### */ # # Paginação em php # // Título: echo("<b><font face='arial' size='2' color='990000'>Paginação em PHP</font></b><br><br>"); // Conecta com o banco: $con = mysql_connect("localhost", "nobody"); mysql_select_db("base_de_dados", $con); // Primeiro comando SQL: $comando_1 = mysql_query("SELECT * FROM fotos", $con); // Declara o total de registros: $total = mysql_num_rows($comando_1); // Declara a primeira página: $pagina = $_GET["pagina"]; if($pagina == ""){ $pagina = "1"; } // Declara o número máximo de registros: $maximo = "6"; // Calcula o registro inicial: $inicio = $pagina -1; $inicio = $maximo*$inicio; // Comando SQL: $comando_2 = mysql_query("SELECT * FROM fotos ORDER BY cod_foto LIMIT $inicio,$maximo", $con); // Exibe o total de registros: echo("Temos <b>".mysql_num_rows($comando_1)."</b> registros cadastrados.<hr size='1' color='#ff0000'>"); // Executa o comando 2: while($res = mysql_fetch_array($comando_2)){ $cod_foto = $res["cod_foto"]; echo($cod_foto."<br>"); } // Calculando pagina anterior $menos=$pagina-1; // Calculando pagina posterior $mais=$pagina+1; // Calculos para a mostragem de paginas $p_ini=$mais-1; $p_ini=$maximo*$p_ini; // Querys para a mostragem de paginas $comando_3=mysql_query("SELECT * FROM fotos LIMIT $p_ini,$maximo", $con); $p_total=mysql_num_rows($comando_3); // Mostragem de pagina if($menos>0) { echo "<a href=\"pagina.php?pagina=$menos\">Página Anterior</a> "; } if(mysql_num_rows($comando_3)>0) { echo " <a href=\"pagina.php?pagina=$mais\">Próxima Página</a>"; } ?> <br> <form style="margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;"> <?php // Listando as paginas $i=1; $pgs=$total/$maximo; $formatado=number_format($pgs); if($formatado<$pgs) { $formatado=$formatado+1; } echo "Página: $pagina "; ?> <select name="selector" onChange="eval(this.options[this.selectedIndex].value)" size="1"> <option value="null"></option> <?php while($i<=$formatado) { echo "<option value=\"parent.location.href='pagina.php?pagina=$i';\">$i</option></p>\n"; $i++; } ?> </select> </form> <?php # # Fim do Programa com paginação. # mysql_close($con); ?>
Paleta de cores HEXADECIMAL para WEB
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)