Paginação com qualidade em PHP
Publicado por Eliel Ulisses Falcucci de Paula 01/03/2006
[ Hits: 7.589 ]
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);
?>
Classe para criar menus de listas
Identificando o Navegador do Cliente Web
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









