Paginação com qualidade em PHP
Publicado por Eliel Ulisses Falcucci de Paula 01/03/2006
[ Hits: 7.729 ]
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);
?>
Script para Integração com a Receita Federal
Url Amigavel ( como nunca vi na net )
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Seno, Coseno, Tangente em CLIPPER (0)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









