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);
}
?>
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>
<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>
<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>

Help














