..:: MX Studio Fóruns ::..: Paginação - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Paginação Pra quem precisar de ajuda...

#1 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

  Posted 21 August 2007 - 04:16 PM

Fiz pra me facilitar a vida, mas quero compartinhar... Essa é uma função que cria automaticamente uma paginação para páginas diversas a partir de alguns dados fornecidos. A sintaxe básica é:

paginar(página atual, total de itens, itens por página, url para encaminhamento, tipo de texto, css dos links, css dos nulos);

página atual -> página atual (não tem o que explicar)
total de itens -> nº de itens que serão exibidos nas páginas ligadas pela paginação (número de linha duma pesquisa mysql por exemplo)
itens por página -> quantos itens estão sendo exibidos por página
url para encaminhamento -> url para montar os links para outras páginas
tipo de texto -> o formato do texto para indicar páginas de ponta e ao redor (primeira, anterior, próxima e última), os valores que pode adquirir são:
--> 1 = texto (primeira, última...)
--> 2 = setas (<<, >...)
--> qualquer outro valor = não faz nada nas pontas
css dos links -> nome da classe CSS para aclopar aos links
css dos nulor -> nome da classe CSS para aclopar aos índices nulos (para a página atual)

a função é a seguinte:
QUOTE
<?php
function paginar($atual, $total, $nopg, $url, $textos, $cssL, $cssN) {
$limite = ceil($total / $nopg);
$res[1] = $limite;

# Primeira página
if($atual == 1) {
if($textos == 1) {
$res[0] = " <span class="".$cssN."">primeira</span> n <span class="".$cssN."">anterior</span> ";
} else if($textos == 2) {
$res[0] = " <span class="".$cssN.""><<</span> n <span class="".$cssN.""><</span> ";
}
} else {
if($textos == 1) {
$res[0] = " <a class="".$cssL."" href="".$url."1">primeira</a> n <a class="".$cssL."" href="".$url.($atual - 1)."">anterior</a> ";
} else if($textos == 2) {
$res[0] = " <a class="".$cssL."" href="".$url."1"><<</a> n <a class="".$cssL."" href="".$url.($atual - 1).""><</a> ";
}
}

# Paginação
for($i = 1; $i <= $limite; $i++) {
if($i == $atual) {
$res[0] .= "n <span class="".$cssN."">".$i."</span> ";
continue;
}
$res[0] .= "n <a class="".$cssL."" href="".$url.$i."">".$i."</a> ";
}

# Última página
if($atual == $limite) {
if($textos == 1) {
$res[0] .= "n <span class="".$cssN."">próxima</span> n <span class="".$cssN."">última</span> ";
} else if($textos == 2) {
$res[0] .= "n <span class="".$cssN."">></span> n <span class="".$cssN."">>></span> ";
}
} else {
if($textos == 1) {
$res[0] .= "n <a class="".$cssL."" href="".$url.($atual + 1)."">próxima</a> n <a class="".$cssL."" href="".$url.$limite."">última</a> ";
} else if($textos == 2) {
$res[0] .= "n <a class="".$cssL."" href="".$url.($atual + 1)."">></a> n <a class="".$cssL."" href="".$url.$limite."">>></a> ";
}
}

return $res;
unset($atual,$total,$nopg,$url,$textos,$cssL,$cssN,$limite,$res);
}
?>

Um exemplo de utilização a seguir:
QUOTE
<html>
<head>
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
background-color: #FFFFFF;
margin: 2px;
}
.txt_cinza {
color: #666666;
font-weight: bold;
}
.txt_verde {
color: #009900;
}
-->
</style>
</head>
<body>
<?
# Um arquivo que faz a conexão
include("conexao-mysql.php");
include("funcao-paginar.php");
# Total de registros por página
$tot = $_GET['tot'];
# Tipo de texto
$txt = $_GET['txt'];
# Página atual
$pgn = $_GET['pgn'];
# Faz o requerimento da página
$pedido = mysql_query("SELECT * FROM usuarios LIMIT ".$tot.",".(($pgn-1) * $tot));
#conta os registros
$total = mysql_num_rows($pedido);
# Faz e imprime a paginação
$x = paginar($pgn, $total, $tot, "?tot=40&txt=2&pgn=", $txt, "txt_verde", "txt_cinza");
echo $x[1]." páginas de resultados: n".$x[0];
?>
</body>
</html>


O resultado final é semelhante ao seguinte (página 3, 239 registros, 20 registos por página:
QUOTE
<html>
<head>
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
background-color: #FFFFFF;
margin: 2px;
}
.txt_cinza {
color: #666666;
font-weight: bold;
}
.txt_verde {
color: #009900;
}
-->
</style>
</head>
<body>
6 páginas de resultados:
<a class="txt_verde" href="?tot=40&txt=2&pgn=1"><<</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=2"><</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=1">1</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=2">2</a>
<span class="txt_cinza">3</span>
<a class="txt_verde" href="?tot=40&txt=2&pgn=4">4</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=5">5</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=6">6</a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=4">></a>
<a class="txt_verde" href="?tot=40&txt=2&pgn=6">>></a>
</body>
</html>

0

#2 User is offline   Alessandro MX 

  • Group: Membros
  • Posts: 25
  • Joined: 11-April 07

Posted 24 April 2008 - 12:19 AM

iae amigo
bom
to tentando colocar essa paginação no meu site...
mas nao sou tao expert ainda em php
ai tentei colocar mas nao ta dando
deu ums erros no inicio
ai fui adaptando
mas so ia dando mais erros
agora nao to conseguindo mais....
vc podia dar uma maozinha ai....
vo postar o codico pra vc ve
abraços



CÓDIGO
<html>
<head>
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
background-color: #FFFFFF;
margin: 2px;
}
.txt_cinza {
color: #666666;
font-weight: bold;
}
.txt_verde {
color: #009900;
}
-->
</style>
</head>
<body>
<?
# Um arquivo que faz a conexao
include("conexao.php");
include("funcao-paginar.php");
# Total de registros por pagina
    
# Total de registros por pagina
$tot = $_GET['tot'];
# Tipo de texto
$txt = $_GET['txt'];
# Pagina atual
$pgn = $_GET['pgn'];
//Agora й realizar a querie de busca no banco de dados
$pedido = mysql_query('SELECT * FROM eventos LIMIT '.$tot.',(($pgn-1) *

$tot));
#conta os registros
$total = mysql_num_rows($pedido);

//40




while ($linha=mysql_fetch_array($pedido)) {

$id = $linha["id"];
$titulo = $linha["titulo"];
$data = $linha["data"];
$local = $linha["local"];
$fotos = $linha["fotos"];
$autor = $linha["autor"];
$imagen = $linha["imagen"];
$link = $linha["link"];




echo "<div align='center'>";
echo "<center>";
echo "<table border='0' cellpadding='0' cellspacing='0'

style='border-collapse: collapse' bordercolor='#111111' width='250'  

height='100' bgcolor='#F9F9F9'>";
echo "<tr>";
echo "<td width='100' height='100'>";
echo "<a href='$link'><img class='Simg'

src='http://www.conexaojauru.com.br/v6666/$imagen' alt='$data / $titulo'  

width='100' height='100' ></a></td>";
echo "<td style='padding-left: 5; padding-right: 5' width='500'

class='destaque' height='100' valign='top'>";
echo "<table border='0' cellpadding='0' cellspacing='0'

style='border-collapse: collapse' bordercolor='#111111' width='237'

height='100'>";
echo "<tr>";
echo "<td width='100%' class='destaque'><a href='$link' title='$data /

$titulo' ><b>$data</b></a></td>";
echo "</tr><tr>";
echo "<td class='fonte1' width='100%'>$titulo</td>";
echo "</tr><tr>";
echo "<td class='fonte1' width='100%'><b>Local:</b> $local</td>";
echo "</tr><tr>";
echo "<td class='fonte1' width='100%'><b>Por:</b> $autor</td>";
echo "</tr><tr>";
echo "<td class='fonte1' width='100%'><b>Fotos:</b> $fotos</td>";
echo "</tr></table></td></tr><tr><td width='100%' height='5'

bgcolor='#FFFFFF' colspan='2'></td></tr></table></center></div>";


}

# Faz e imprime a paginacao
$x = paginar($pgn, $total, $tot, "?tot=40&txt=2&pgn=", $txt, "txt_verde",

"txt_cinza");
echo $x[1]." paginas de resultados: n".$x[0];
?>
</body>
</html>


?>

0

#3 User is offline   Gustavo_nunes 

  • Group: Membros
  • Posts: 17
  • Joined: 18-November 08

Posted 19 November 2008 - 11:06 PM

eu uso esse codigo:

<?
// PAGINAÇÃO INÍCIO
if ($pagina=="") $pagina=1;
$mensagens_por_pagina = 6; // Aqui diz qual a quantidade de registros por pagina
$inicio = ($pagina-1)*$mensagens_por_pagina;

$sql = mysql_query("SELECT * FROM tabela");
$total = mysql_num_rows($sql);
$num_paginas = intval($total/$mensagens_por_pagina);
?>

/\ Aqui é a parte q ele ve quantas paginas irá precisar, e etc... $mensagens_por_pagina voce passa o numero de consultas que deseja imprimir....

<? $sql = mysql_query("SELECT * FROM tabela LIMIT $inicio,$mensagens_por_pagina"); ?>

/\ Aqui é a consulta daonde vc ira imprimir os dados, ou seja, ele só vai pegar um numero X de itens do banco para imprimi-los


<?
// LISTA DAS PÁGINAS INICIO
echo "<font color=#FFFFFF> Páginas: </font>";
for ($i = 1; $i <= ($num_paginas+1); $i++) {
if ($i == ($pagina)) { echo " <b><font color=#FFFFFF>$i</b> | </font>"; }
else { echo "<font color=#FFFFFF><a href='?pagina=$i&id_cobertura=$id_cobertura'>$i</a> | </font>"; }
}
// LISTA DAS PÁGINAS FIM
$
?>

/\ aqui é a parte de: 1 | 2 | 3 | 4.... que o usuario escolhe a pagina...

nao testei, mas qqr coisa é só falar...
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
*New Replies Buy Tadalis Sx Online Prescrizione
Acquistare Tadalafil Compra Farmacia Line
Eventos Guest_Leaskelenny_* 
  • 0 Replies
  • 5 Views
*New Replies Compra de Risperidone generico preco, compra de Risperidone 2 mg en argentina Eventos Guest_GoroGOFTDeego_* 
  • 0 Replies
  • 10 Views
New Replies Alguem sabe...
Preciso de uma ajuda!
Fireworks flavio 
  • 1 Reply
  • 912 Views
New Replies Drag com mask
ajuda para fazer um fundo movimentar-se de acordo seu tamanho
Flash & ActionScript Diego Web Design 
  • 2 Replies
  • 902 Views
New Replies Prazo vence e YouTube não retira vídeos japoneses que ferem direitos autorais Notícias Notícias 
  • 0 Replies
  • 503 Views
New Replies prada sunglasseste50
www.intouchconsulting.com/wholesalesunglasses415.html
vc69
Eventos foellaporrino 
  • 0 Replies
  • 7 Views
New Replies Adobe Audition
Quem sabe usar?
Outros Vani 
  • 2 Replies
  • 1443 Views
New Replies Ajuda com paginação PHP Barba 
  • 1 Reply
  • 741 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)