Jump to content


Paginação, Como Fazer!


  • Faça o login para participar
2 replies to this topic

#1 Whitesnake

Whitesnake
  • Visitantes

Posted 21/05/2004, 12:11

É essencial que scripts como de notícias, fóruns, etc... utilizem paginações em seus arquivos para não causar grande carregamento na página. Aqui iremos aprender como se montar um simples script de paginação:
Abaixo está o código completo, e '#' são as explicações:

#!/usr/bin/perl
print "Content-type:text/html\n\n";
$arquivo    = "bd.txt";# Arquivo de 'notícias, foruns, etc...'
$porpagina = "10";# Número de 'linhas para exibir' por página
#####################################################
$vendo = $ENV{'QUERY_STRING'}; # Gere a querystring
open (bd,"$arquivo");                      # Abre o bd
@bd = reverse<bd>;                      # Copia seu conteúdo em ordem inversa para uma array
close(bd);                                      # Fecha o bd

$todos=@bd;                                 # Conteúdo de @bd = $todos

if ($vendo eq "") {                         # Se a querystring estiver vazia...
$vendo = "$porpagina";                 # Querystring = número de linhas por página


$dim = $vendo - $porpagina;         # $dim igual a querystring menos linhas p/ página
$valor=$dim+1;                           # $valor é igual a querystring+1

$inicio = 0;                                 # Cria variável com valor 0
foreach (@bd) {                          # Para cada linha...
($nome) = split(/\|/, $_);            # Divide '|' caso tenha mais valores

++$inicio;                                  # Incrementa $inicio
if ($inicio > $dim) {                    # Se o início for maior que $dim...
if ($inicio <= $vendo) {              # Se início for menor que querystring...
print qq~
$nome<hr>                              ~; # Exibe o nome
}
}
}

####################################
                       # Cria flexinha pra trás #

if ($dim >= $porpagina) { 
print "<a href=?$dim>«</a>";    # Mostra a flexinha
} else {
}
####################################


$paginas = $todos / $porpagina; # Divide cada ítem por pagina e gera o número de páginas necessárias

for($i=0;$i<$paginas;$i++) {     # Enquanto as páginas não forem alcançadas

$aaa = $i;                                 # $aaa igual a $i
$aaa++;                                   # $aaa mais um
$link = $aaa * $porpagina;        # O link é igual à $aaa vezes 10
if ($vendo eq "$link") {               # Se querystring igual a link então...

print " <a href='?$link' target='_self'>$aaa</a> "; 

} else  {                                  # Caso contrário...
print " <a href='?$link' target='_self'>$aaa</a> "; 
}
}



######################################
                     # Mostra a flexinha pra frente #


if ($todos >= $vendo) {            # Se todos forem igual ou maior que querystring

$acima = $vendo + $porpagina; # Acima igual a querystring + 10
print " <a href='?pagina=$acima'>»</a>"; # Mostra setinha

} else {
}
######################################


Tutorial por Stone Rock.
Script por Gabriel, jgcl e CGIClube.

#2 Gabriel

Gabriel

    CGI & PHP até Morre!!!!

  • Usuários
  • 573 posts
  • Sexo:Não informado
  • Localidade:Santo Andre-SP
  • Interesses:http://www.divulgue-me.com

Posted 21/05/2004, 14:46

Olha, muito bom cara
parabens!!!!

Mais os creditos tbm são reservados ao JGCL e o pessoal da CgiClube, pois esse codigo foi criado em conjunto com o pessoal la, apos nosso amigo JGCL abrir o topico
abraços
Editado pela equipe Forum Wmo, favor ler as regras.

#3 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 21/05/2004, 14:49

Olha, muito bom cara
parabens!!!!

Mais os creditos tbm são reservados ao JGCL e o pessoal da CgiClube, pois esse codigo foi criado em conjunto com o pessoal la, apos nosso amigo JGCL abrir o topico
abraços

Vlw pelos crétidos! Mas devo eles a todo o pessoal do fórum da CGiClube.

[]'s
João Gabriel
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq