Paginação profissional
exibe no formato :
<<< Anterior | 1 | 2 | 3 | 4 | 5 | [6] | 7 | 8 | 9 | 10 | 11 | Próxima >>>
<<< Anterior | 1 | 2 | 3 | 4 | 5 | [6] | 7 | 8 | 9 | 10 | 11 | Próxima >>>
Data | Autor | Changelog | Download |
---|---|---|---|
22/01/2004 12:01pm | Wilson Aguiar Gutierrez | - | Versão 0.1 |
01/10/2004 4:59pm | Wilson Aguiar Gutierrez | Versão 0.2 | Versão 0.2 |
ótimo script
31/01/2008 12:14pm
(~16 anos atrás)
ai meu brow essa nova versão q vc postou ñ funciona! se ligue no cálculo dessa aqui o endereço p ver ela funcionando: http://www.diamantes.festlojas.com só que tá meio doida sabe... pq ele só mostra os 7 nº no cálculo q vc fez dai eu fui mechendo rsrs e cosegui aumentar porém ta todo doido eu não sei como é a proporção tentei de várias maneiras mas enfim o código é esse ai o que voce postou se puder deixar ele com mais número e proporcionalmente vlw!:
<?
$conn = mysql_connect("localhost","fea","a");
$banco = mysql_select_db("fa");
$busca = "SELECT * FROM ds order by id desc";
$total_reg = "1";
$campo = "des,deo,o";
$pagina = $_GET['pagina'];
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
$inicio = $pc-1;
$inicio = $inicio*$total_reg;
$limite = mysql_query("$busca LIMIT $inicio,$total_reg"); // busca no banco de dados
$todos = mysql_query("$busca");
$maxRec = mysql_num_rows($todos);
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas
$tp = (int) $tp; // Tira os quebrados do resultado
if ($tp!=($tr / $total_reg)) { $tp++; } // ajusta a amostragem das paginas
while($dados = mysql_fetch_array($limite)) { // monta a pagina solicidada
$cor = ($coralternada++ %2 ? "FFFFFF" : "E5E5E5"); // Mostra resultado com cores alternadas
$diamantes = $dados[diamantes];
$descricao = $dados[descricao];
$outro = $dados[outro];
print "<center><head></head><table border=\"0\" width=\"48%\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td><p align=\"center\"><img border=\"0\" src=\"$diamantes\"></td> </tr> <tr> <td> <p align=\"center\"><font color=\"#2E9BB9\">Descrição</font></td> </tr><tr><td><p align=\"center\"><font style=\"font-size: 15pt\" color=\"#72C5DC\">$descricao</font></td> </tr></table></center>";
}
echo "<br><br><br><center><font color=red>$maxRec</font> Diamantes do Orkut Cadastrados!</center><tr><td><br></td></tr><br>";
// Calcula o valor das paginas anterior e proxima
if ($tp > 1) {
echo "<tr><td bgcolor=#FFFFFF colspan=2><center>";
$anterior = $pc -1;
$proximo = $pc +1;
echo "<FONT SIZE=1 face=Verdana>";
if ($pc>1) { echo "<a href='?pagina=$anterior".$comp."'><<< Anterior</a> "; } else { echo "<<< Anterior"; }
echo " | ";
// aqui começa a parte mais chata, ele calcula os numeros do miolo da barra de paginação
if ($tp <= 23)
{ $cont1 = 1; $cont2 = $tp; }
else
{ if ($pc < 19 )
{ $cont1 = 1; $cont2 = 23; }
else
{ $cont2 = $pc + 18;
if ($cont2 > $tp)
{ $cont2 = $tp; }
$cont1 = $cont2 - 22;
}
}
$cont2++;
$cont=$cont1;
// feito os calculos, aqui monta-se o miolo da barra
while ($cont!=$cont2) {
IF ($pc==$cont){
ECHO (" <font color=red>[$cont]</font> | ");
} ELSE {
ECHO (" <A HREF=\"?pagina=$cont".$comp."\">$cont </A> | ");
}
$cont++;
}
if ($pc<$tp) {
echo " <a href='?pagina=$proximo".$comp."'>Próxima >>></a>";
} else {
echo "Próxima >>>";
}
echo "</font></center></td></tr>";
}
?>
<?
$conn = mysql_connect("localhost","fea","a");
$banco = mysql_select_db("fa");
$busca = "SELECT * FROM ds order by id desc";
$total_reg = "1";
$campo = "des,deo,o";
$pagina = $_GET['pagina'];
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
$inicio = $pc-1;
$inicio = $inicio*$total_reg;
$limite = mysql_query("$busca LIMIT $inicio,$total_reg"); // busca no banco de dados
$todos = mysql_query("$busca");
$maxRec = mysql_num_rows($todos);
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas
$tp = (int) $tp; // Tira os quebrados do resultado
if ($tp!=($tr / $total_reg)) { $tp++; } // ajusta a amostragem das paginas
while($dados = mysql_fetch_array($limite)) { // monta a pagina solicidada
$cor = ($coralternada++ %2 ? "FFFFFF" : "E5E5E5"); // Mostra resultado com cores alternadas
$diamantes = $dados[diamantes];
$descricao = $dados[descricao];
$outro = $dados[outro];
print "<center><head></head><table border=\"0\" width=\"48%\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td><p align=\"center\"><img border=\"0\" src=\"$diamantes\"></td> </tr> <tr> <td> <p align=\"center\"><font color=\"#2E9BB9\">Descrição</font></td> </tr><tr><td><p align=\"center\"><font style=\"font-size: 15pt\" color=\"#72C5DC\">$descricao</font></td> </tr></table></center>";
}
echo "<br><br><br><center><font color=red>$maxRec</font> Diamantes do Orkut Cadastrados!</center><tr><td><br></td></tr><br>";
// Calcula o valor das paginas anterior e proxima
if ($tp > 1) {
echo "<tr><td bgcolor=#FFFFFF colspan=2><center>";
$anterior = $pc -1;
$proximo = $pc +1;
echo "<FONT SIZE=1 face=Verdana>";
if ($pc>1) { echo "<a href='?pagina=$anterior".$comp."'><<< Anterior</a> "; } else { echo "<<< Anterior"; }
echo " | ";
// aqui começa a parte mais chata, ele calcula os numeros do miolo da barra de paginação
if ($tp <= 23)
{ $cont1 = 1; $cont2 = $tp; }
else
{ if ($pc < 19 )
{ $cont1 = 1; $cont2 = 23; }
else
{ $cont2 = $pc + 18;
if ($cont2 > $tp)
{ $cont2 = $tp; }
$cont1 = $cont2 - 22;
}
}
$cont2++;
$cont=$cont1;
// feito os calculos, aqui monta-se o miolo da barra
while ($cont!=$cont2) {
IF ($pc==$cont){
ECHO (" <font color=red>[$cont]</font> | ");
} ELSE {
ECHO (" <A HREF=\"?pagina=$cont".$comp."\">$cont </A> | ");
}
$cont++;
}
if ($pc<$tp) {
echo " <a href='?pagina=$proximo".$comp."'>Próxima >>></a>";
} else {
echo "Próxima >>>";
}
echo "</font></center></td></tr>";
}
?>
31/01/2008 10:31am
(~16 anos atrás)
ae galera queria que paginasse isso aqui http://www.festlojas.com/ploft.php?pg=rapidinhas
tipo ai é tudo manual e as paginações q eu vi pede o SQL :( se alguém puder me ajudar a fazer com que eu crie um BD pra isso ai agradeço valeu!!!
MSN: afamilialegal@hotmail.com
http://www.festlojas.com
tipo ai é tudo manual e as paginações q eu vi pede o SQL :( se alguém puder me ajudar a fazer com que eu crie um BD pra isso ai agradeço valeu!!!
MSN: afamilialegal@hotmail.com
http://www.festlojas.com
04/09/2007 3:11pm
(~16 anos atrás)
Cara você é modesto rsrs, pra um primeiro script postado rs, abriu com chave de ouro, funfa sem erro nenhum, adaptei ele numa busca de imóveis e ficou perfeito, foi o primeiro que eu peguei que realmente ajudou ao invés de aborrecer rs. Valeu mesmo véio...
02/05/2007 11:41am
(~17 anos atrás)
Desculpa mas eu tinha que falar rs, já faz muito tempo que eu procuro por uma paginação igual a essa, desisti várias vezes, e hoje em mais uma tentativa eu achei essa. Meus parabéns aí pro Wilson, muito construtivo o script, me tirou do sufoco...
02/05/2007 10:08am
(~17 anos atrás)
Corrigindo esse ultimo bug ai que o Evaldo fez o script dah certo...bacana, vi um monte de script com esse tema, mas esse foi o unico q realmente fez o que eu estava procurando, falta alguns correções de melhoria, mas são só besteiras, tipo layout e outras informações para página tipo tempo de abertura apresentacao de total de pagina que tem, enfim, pouca coisa para mudar, mas o importante eh que está funcionando.
Assim que eu melhorar esses detalhes que mencionei eu envio para compartilhar com vcs.
abraços!
Assim que eu melhorar esses detalhes que mencionei eu envio para compartilhar com vcs.
abraços!
21/10/2006 9:33am
(~17 anos atrás)
A versão 0.2 tem um bug:
Os links estão assim:
<a href='?p=$proximo".$comp."'
O correto é:
<a href='?pagina=$proximo".$comp."'
Outra coisa:
Para que serve a variável $comp? Não localizei a sua inicialização.
Os links estão assim:
<a href='?p=$proximo".$comp."'
O correto é:
<a href='?pagina=$proximo".$comp."'
Outra coisa:
Para que serve a variável $comp? Não localizei a sua inicialização.
29/09/2005 9:19am
(~18 anos atrás)
Eu já havia resolvido o bug, porque com determinado numero de paginas, a barra ficava perdida . eu já reformulei o codigo, e vou postar aqui logo em breve ..
01/10/2004 4:44pm
(~19 anos atrás)
Oi no final modifiquei a listagem de paginas ele so testava
if ($cont1<1) {
$cont1=1;
$cont2=50;
if ($tp<=50) {
$cont2=$tp;
}
}
e para funcionar o meu coloquei assim:
if ($cont1<1) {
$cont1=1;
$cont2=50;
if ($tp<=50) {
$cont2=$tp;
}
}
Mas obrigado mesmo to utilizando essa paginação nos meu codigos....FLW
if ($cont1<1) {
$cont1=1;
$cont2=50;
if ($tp<=50) {
$cont2=$tp;
}
}
e para funcionar o meu coloquei assim:
if ($cont1<1) {
$cont1=1;
$cont2=50;
if ($tp<=50) {
$cont2=$tp;
}
}
Mas obrigado mesmo to utilizando essa paginação nos meu codigos....FLW
01/10/2004 4:13pm
(~19 anos atrás)