Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wolfphw

Script para paginação bem simples

Recommended Posts

Ta dando erro no ultimo registro....

 

tipo:

eu mando listar 8 por pagina ai ele aparece 7 registro beleza, mas o oitavo fica zuado....assim em todas as paginas tipo Pg1 Pg2.....

 

alguem pode me ajudar a resolver isso?

 

desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Comunidade, fiz tudo certo..e deu certo http://forum.imasters.com.br/public/style_emoticons/default/grin.gif/>

 

Com as alteracoes do Beraldo e do Orides Tomkiel o codigo funcionou 100%..

 

mas estou com umas duvidas...

 

sempre fica a paginacao 1 a menos..como faço para deixar a paginacao certa conforme os numeros?

 

e outro coisa eh...fica assim

 

[1] 2 3 4 5..ai quando você clica no 5..fica assim

 

1 2 3 4 [5] 6 7 8 9...clica no 9 fica

 

5 6 7 8 [9] 10 11 12 13...e assim por diante..

 

queria deixar sempre 5 apenas..

 

quando clica no 5...fica do 6 ao 11...e assim por diante..

 

como faço? meu codigo esta assim:

 

<?php
	$quant_pg = ceil($quantreg/$numreg);
	$quant_pg++;
	
	// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
	if ( $pg > 0) {
		echo "<a href=".$_SERVER['PHP_SELF'] ."?pg=".($pg-1) ."class=pg><b>« anterior</b></a>";
	} else {
		echo "<font color=#CCCCCC>« anterior</font>";
	}
	// Aqui começa a alteração
	// faz o controle da quantidade de paginas irá mostrar em números na paginação
	if (($pg - 3) < 1 ){
	$ant = 1;
	} else {
	$ant = $pg - 3;
	}
	if (($pg + 6) > $quant_pg ) {
	$pos = $quant_pg;
	} else {
	$pos = $pg + 6;
	}
	
	// Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
	for($i_pg=$ant;$i_pg < $pos;$i_pg++) {
	// Aqui termina a alteração
		// Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
		if ($pg == ($i_pg-1)) {
			echo " <span class=pgoff>[$i_pg]</span> ";
		} else {
			$i_pg2 = $i_pg-1;
			echo " <a href=".$_SERVER['PHP_SELF'] ."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";
		}
	}
	
	// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
	if (($pg+2) < $quant_pg) {
		echo "<a href=".$_SERVER['PHP_SELF'] ."?pg=".($pg+1)." class=pg><b>próximo »</b></a>";
	} else {
		echo "<font color=#CCCCCC>próximo »</font>";
	}
?>

Obrigado - Tom http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Comunidade!

 

Deu certo aqui!

 

Com ajuda novamente do Nicolas consegui resolver mais um problema q tive!

 

Aqui vai um codigo que era a duvida q tinha...e soh fica sempre 5 na exibicao...

 

<?php
	$quantidade = 10;
	$pagina = @$_GET["pagina"];
	if (!is_numeric ($pagina)) {$pagina = 1;}
	
	$busca = mysql_query ("SELECT * FROM tabela");

	$paginas = mysql_num_rows($busca);
	$totalderesultados = $paginas;
	$paginas = ceil ($paginas / $quantidade);
	if ($pagina > $paginas) {$pagina = $paginas;}
	$limite = (($pagina - 1) * $quantidade);
	if ($limite <= -1){ $limite = 0; }
	
	$busca = mysql_query ("SELECT * FROM tabela LIMIT $limite,$quantidade");
 
// o resto eh com vcs!!!
?>


<?php
$paginacaoa = (($pagina - 1) <= 0) ? "anterior" : "<a href=\"$link?pagina=" . ($pagina - 1) . "\">anterior</a>";
$paginacao .= (($pagina - 2) <= 0) ? "" : " | <a href=\"$link?pagina=" . ($pagina - 2) . "\">" . ($pagina - 2) ."</a>";
$paginacao .= (($pagina - 1) <= 0) ? "" : " | <a href=\"$link?pagina=" . ($pagina - 1) . "\">" . ($pagina - 1) ."</a>";
$paginacao .= " | <b>".$pagina."</b> | ";
$paginacao .= (($pagina + 1) > $paginas) ? "" : " <a href=\"$link?pagina=" . ($pagina + 1) . "\">" . ($pagina + 1) ."</a> |";
$paginacao .= (($pagina + 2) > $paginas) ? "" : " <a href=\"$link?pagina=" . ($pagina + 2) . "\">" . ($pagina + 2) ."</a> |";
if ($pagina <= 2){
	$paginacao .= (($pagina + 4) > $paginas) ? "" : " <a href=\"$link?pagina=" . ($pagina + 4) . "\">" . ($pagina + 4) ."</a> |";
}
$paginacaop = (($pagina + 1) > $paginas) ? "proximo" : "<a href=\"$link?pagina=" . ($pagina + 1) . "\">proximo</a>";

?>
<div id="paginacao">
<div id="anterior"><?=$paginacaoa?></div>
<div id="paginas"><?=$paginacao?></div>
<div id="proximo"><?=$paginacaop?></div>
</div>

Tom

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, otimo script, simples e eficiente.

 

O unico problema é que se as registes_globals estiverem desligadas ele da alguns problemas, mas nada que não seja facilmente resolvido.

 

Valeu

Sou novato, e ao ler o cometário ai, analisei o código e nao achei qual parte do código utiliza Resister globals, e gostaria de entender... e qual a correção para isso , neste código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente, meus parabéns wolfphw ;)/>

 

seu código é de grande serventia pra muita gente aqui e inclusive pra mim.. hehe

 

eu só precisava de uma coisinha no momento..

eu tenho um sistema de paginação funcionando belezinha :D/>

agora, eu precisava fazer o seguinte:

minha paginação é para um sisteminha de notas fiscais de transferências para obras que eu fiz, e eu precisava ordenar de diferentes formas os dados na paginação, exemplo: ordenar pela data, valor da nf, endereço da obra, nome da obra...

 

eu até fiz alguma coisa aqui, eu consigo mudar a ordem, mas assim que eu clico pra mudar de página, volta na ordem inicial que é pelo número das nfs, pensei em usar session ou cookies, mas como eu não entendendo muuita coisa de php, eu não consegui nada 100%

 

se você, ou alguém pudesse me ajudar, eu ficaria muito grato!

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, sou iniciante em PHP, mas trabalho a 20 anos com programação em diversas linguagens. Gostaria de agradecer pelo script de paginação, e eu dei um jeito nele já que ele apresentou alguns problemas. Agora, pelo menos aqui está 100%, com essas modificações. Se alguém verificar alguma coisa que derrepente poderia ser solucionada mais facilmente, com outro comando porfavor me digam, como já disse sou iniciante. Obrigado a todos.

 

----------------------------------------------------------

 

pag_curso.php

 

<?php

// Incluindo a conexão com o banco

include('sgbd/conn.php');

 

//######### INICIO Paginação

$numreg = 10; // Quantos registros por página vai ser mostrado

if (!isset($pg)) {

$pg = 0;

}

 

$inicial = @$_GET['pg'] * $numreg;

//######### FIM dados Paginação

 

// Faz o Select pegando o registro inicial até a quantidade de registros para página

$sql = mysql_query("select * from cursos LIMIT $inicial, $numreg");

 

// Serve para contar quantos registros você tem na seua tabela para fazer a paginação

$sql_conta = mysql_query("SELECT * FROM cursos");

 

$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação

 

include("paginar_curso.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>

 

echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo

 

while ($aux = mysql_fetch_array($sql)) {

echo "<a href=" , $aux['endereco'] , ">" , $aux['descricao'], "</a>", "<br/>";

}

?>

 

 

----------------------------------------------------------

 

paginar_curso.php

 

 

<style type="text/css">

<!--

.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}

a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}

a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}

-->

</style>

 

<?php

$quant_pg = ceil($quantreg/$numreg);

$quant_pg++;

 

// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior

if ( @$_GET['pg'] > 0) {

echo "<a href=".$_SERVER['PHP_SELF']."?pg=".(@$_GET['pg']-1)." class=pg ><b>« Anterior</b></a>";

} else {

echo "<font color=#CCCCCC>« anterior</font>";

}

 

// Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO

 

for($i_pg=1; $i_pg<$quant_pg;$i_pg++) {

// Verifica se a página que o navegante esta e retira o link do número para identificar visualmente

 

if (@$_GET['pg'] == ($i_pg-1)) {

echo " <span class=pgoff>[$i_pg]</span> ";

} else {

$i_pg2 = $i_pg-1;

echo " <a href=".$_SERVER['PHP_SELF']."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";

}

}

 

// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima

if ((@$_GET['pg']+2) < $quant_pg) {

echo "<a href=".$_SERVER['PHP_SELF']."?pg=".(@$_GET['pg']+1)." class=pg ><b>próximo »</b></a>";

} else {

echo "<font color=#CCCCCC>próximo »</font>";

}

?>

Muito bom esse script. http://forum.imasters.com.br/public/style_emoticons/default/grin.gif/>

 

Valeu mesmo ARN!

Agora sim deu certo! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/>

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente, meus parabéns wolfphw ;)/>

 

seu código é de grande serventia pra muita gente aqui e inclusive pra mim.. hehe

 

eu só precisava de uma coisinha no momento..

eu tenho um sistema de paginação funcionando belezinha :D/>

agora, eu precisava fazer o seguinte:

minha paginação é para um sisteminha de notas fiscais de transferências para obras que eu fiz, e eu precisava ordenar de diferentes formas os dados na paginação, exemplo: ordenar pela data, valor da nf, endereço da obra, nome da obra...

 

eu até fiz alguma coisa aqui, eu consigo mudar a ordem, mas assim que eu clico pra mudar de página, volta na ordem inicial que é pelo número das nfs, pensei em usar session ou cookies, mas como eu não entendendo muuita coisa de php, eu não consegui nada 100%

 

se você, ou alguém pudesse me ajudar, eu ficaria muito grato!

 

abraço.

 

Bem meu amigo.. eu nesse meu script eu fiz uma vez um site que rpecisou disso, não tenho mais o script aki... mas fiz da seguinte forma... no titulo da GRID eu coloquei um campo que informa a ordenação.. se escolhe data ele manda lah ordenar=data, se for por registro ordernar=id.. e assim vai

 

dai no codigo onde monta a paginação eu acrescentei lah pra ele colocar na URL esse campo a mais de informação...

 

exemplo: lista.php?pg=5&ordernar=data

 

 

 

Dai onde ele executa o SQL ele pega o valor desse ordernar... caso ele naum tenha nenhum valor ele pegaria por default a coluna de ID

 

 

exemplo:

if (!isset($ordernar)) {

$ordernar = "ID";

}

$sql = "SELECT * FROM tabela ORDER $ordernar";

 

 

 

bem naum sei se consegui resolver sua duvida.. mas eh por ai http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

wolfphw Parabéns pelo codigo,

 

Mas estou com um probleminha, a logica do seu codigo e de facil entendimento, mas no meu caso, está acontecendo algo de errado; Quando passo para as demais paginas , a paginação está retornando todos os registros do meu Banco.

 

aXo que ela não está segurando a variavel de pesquisa, ae qdo a paginação passa pra proxima pagina, a query e executada sem varaivel de pesquisa, porisso retornando todo o banco.

 

Tem ideia de como resolver esse pipino ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço para adaptar esta paginação em uma pagina com link assim

 

pg_admin.php?page=pg_news

 

quando eu clico em proximo vai para a pg_admin.php?pg=1

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço para adaptar esta paginação em uma pagina com link assim

 

pg_admin.php?page=pg_news

 

quando eu clico em proximo vai para a pg_admin.php?pg=1

 

Vlw

 

pg_admin.php?page=pg_news&pg=1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o $_GET

Coloca um $pg = $_GET['pg'] lá no início dos scripts, que vai resolver o problema do autor ter escrito para register globals on.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o $_GET

Coloca um $pg = $_GET['pg'] lá no início dos scripts, que vai resolver o problema do autor ter escrito para register globals on.

 

 

É isso mesmo amigo, deu certo valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

otimo esse tutorial, eu segui e rodo tdu 100%.

mas tem um pequeno problema

Ex.

a minha tabela tem 22 registros, eu coloquei pra aparece 10 por pagina, dai ele aparece 2 pagina com 10, totalizando 20 registros mostrados, sendo q 2 ficam de fora.

 

Como fasso pra aparece esse dois registros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Josue Webmaster, só agora vi sua resposta.

 

Alguém sabe com eu coloco um link para ir direto para ultima ou primeira página.

 

Ex. Primeira Anterior ... 1 2 3 4 [5] 6 ... Próxima Ultima.

 

 

Eu tentei aqui mais via sempre para uma pagina após a ultima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos.

 

Parabéns pelo script, me ajudou muito e creio que ajudará muita gente.

 

Fiz uma modificação para resolver o problema do nosso amigo phs22

 

Como eu faço para adaptar esta paginação em uma pagina com link assim

 

pg_admin.php?page=pg_news

 

quando eu clico em proximo vai para a pg_admin.php?pg=1

 

Vlw

 

No lugar de $_SERVER['PHP_SELF'] colocar $_SERVER['REQUEST_URI'], onde ele vai puxar direto o link da página atual.

 

Abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alquém poderia me ajudar não está dando certo quando clico no proximo volta para apagina inicial se puder me dizer onde está o erro fico muito grato.

 

 

 

 

busca.php


<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
Palavra:<input type="text" name="palavra" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>
<br>

<br />
<?php

//######### INICIO Paginação
$numreg = 6; // Quantos registros por página vai ser mostrado
if (!isset($pg)) {
$pg = 0;
}

$inicial = $_GET['pg'] * $numreg;

//######### FIM dados Paginação

if(!empty($HTTP_POST_VARS[palavra])) {

$busca = explode(' ', $HTTP_POST_VARS['palavra']);

foreach($busca as $palavra){

// Faz o Select pegando o registro inicial até a quantidade de registros para página
$sql = mysql_query("select * from img WHERE tag LIKE '%".$palavra."%' LIMIT $inicial, $numreg");

// Serve para contar quantos registros você tem na sua tabela para fazer a paginação
$sql_conta = mysql_query("SELECT * FROM img WHERE tag LIKE '%".$palavra."%'");

$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação

// conta quantos registros encontrados com a nossa especificação
if ($quantreg == 0) {
echo "Nenhum resultado para <b>$palavra</b>!<br><br>";
}

// se houver um resultado diz que existe um resultado
if ($quantreg == 1) {
echo "$quantreg resultado encontrado para <b>$palavra</b>!<br><br>";
}

// se houver um resultado diz que existe um resultado
if ($quantreg > 1) {
echo "$quantreg resultados encontrados para <b>$palavra</b>!<br><br>";
}

include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>

echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo

while ($aux = mysql_fetch_array($sql)) {

 ?>

 <table width="400" border="0" align="center">
  <tr align="left">


    <td><? echo "<a href=\"imagem.php?link=".$aux[imagem]."\"><img src='/upload/$aux[imagem]' width=100 height=100 border=0/></a><br>" ?></td>
    <td><?= $aux['tag']."<br>"; ?></td>
  </tr>
 </table>
 
 <?
 }
 }
 }
 ?>

 

 

 

paginacao.php

<style type="text/css">
<!--
.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}
a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}
a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}
-->
</style>
<?php
        $quant_pg = ceil($quantreg/$numreg);
        $quant_pg++;

        // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
        if ( $pg > 0) {
                echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."class=pg><b>« anterior</b></a>";
        } else {
                echo "<font color=#CCCCCC>« anterior</font>";
        }
        // Aqui começa a alteração
        // faz o controle da quantidade de paginas irá mostrar em números na paginação
        if (($pg - 3) < 1 ){
        $ant = 1;
        } else {
        $ant = $pg - 3;
        }
        if (($pg + 6) > $quant_pg ) {
        $pos = $quant_pg;
        } else {
        $pos = $pg + 6;
        }

        // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
        for($i_pg=$ant;$i_pg < $pos;$i_pg++) {
        // Aqui termina a alteração
                // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
                if ($pg == ($i_pg-1)) {
                        echo " <span class=pgoff>[$i_pg]</span> ";
                } else {
                        $i_pg2 = $i_pg-1;
                        echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";
                }
        }

        // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
        if (($pg+2) < $quant_pg) {
                echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>";
        } else {
                echo "<font color=#CCCCCC>próximo »</font>";
        }
?>

No caso o codigo exibe so o resultado buscado com o maximo de 6 por pagina caso tenha mais de 6 cria a paginação. Só que ao clicar em 2 volta para busca.php com resultado em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos do imaster, sou novo no forum e iniciante em programação.... Estou tendo uns problemas quanto ao uso de paginção...

Tipo eu implementei esse script aki, fiz algumas alteraçoes mais quando eu fazo a pesquisa, uso 2 campos.... para pesquisar de uma data

até certa data. Quando clico em pesquisar ele só mostra o último registro.. segue meu código abaixo para analise de vcs... preciso de ajuda hahaha

 

 

 

paginação.php

 

<style type="text/css">
<!--
.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}
a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}
a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}
-->
</style>
<?php
        $quant_pg = ceil($quantreg/$numreg);
        $quant_pg++;
        
        // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
        if ( $_GET['pg']  > 0) { 
                echo "<a href=".$_SERVER['PHP_SELF']."?pg=".($_GET['pg'] -1) ."&busca=$busca class=pg><b>« anterior</b></a>";
        } else { 
                echo "<font color=#CCCCCC>« anterior</font>";
        }
        
        // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
        for($i_pg=1;$i_pg<$quant_pg;$i_pg++) { 
                // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
                if ($_GET['pg']  == ($i_pg-1)) { 
                        echo " <span class=pgoff>[$i_pg]</span> ";
                } else {
                        $i_pg2 = $i_pg-1;
                        echo " <a href=".$_SERVER['PHP_SELF']."?pg=$i_pg2&busca=$busca class=pg><b>$i_pg</b></a> ";
                }
        }
        
        // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
        if (($_GET['pg'] +2) < $quant_pg) { 
                echo "<a href=".$_SERVER['PHP_SELF']."?pg=".($_GET['pg'] +1)."&busca=$busca class=pg><b>próximo »</b></a>";
        } else { 
                echo "<font color=#CCCCCC align='center'>próximo »</font>";
        }
?>

 

 

 

 

 

 

 

 

 

o código na pagina para paginação

 

 

 


			<?php
							//######### INICIO Paginação
								$numreg = 20; // Quantos registros por página vai ser mostrado
								if (!isset($_GET['pg'] )) {
									$_GET['pg']  = 0;
								}
								$inicial = $_GET['pg'] * $numreg; 
								
							//######### FIM dados Paginação
								
								// Faz o Select pegando o registro inicial até a quantidade de registros para página
								$sql = mysql_query("SELECT * FROM tabprotocolo LIMIT $inicial, $numreg");

								// Serve para contar quantos registros você tem na seua tabela para fazer a paginação
								$sql_conta = mysql_query("SELECT * FROM tabprotocolo");
								
								$quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação
								
								include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>
								
								echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo
								
								while ($aux = mysql_fetch_array($sql)) 
								{
									/* Ai o resto é com voces em montar como deve parecer o conteúdo */
							        }
?>

 

 

Uma dúvida por ex ali em cima onde /* Ai o resto é com voces em montar como deve parecer o conteúdo */ ali vai a tabela a ser paginada fica fora?

Desde já grato galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae galera criei aqui um scrip de paginação e deu certo só que o seguinte, ele avança para a proxima pagina (pagina +1), e volta (pagina - 1)... ai depois se eu quero clicar em proximo denovo o valor da proxima pagina fica pagina = 0.... vou postar aqui a logica para ver se agente consegue resolver isso. Eu tirei algumas partes, mas a parte da logica ta paginação ta ai. Abraços galera!

 

 

				    //inclusão da conexão com banco de dados
			      require('conexao.php');
			      //A quantidade de valor a ser exibida
			      $quantidade = 1;
			      //a pagina atual
			      $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
			      //Calcula a pagina de qual valor será exibido
			      $inicio     = ($quantidade * $pagina) - $quantidade;

			      //Monta o SQL com LIMIT para exibição dos dados 
			      $sql =  "SELECT * FROM tabprotocolo INNER JOIN tabtpdoc ON tabprotocolo.codtpdoc = tabtpdoc.codtpdoc INNER JOIN tabsecopm ON tabsecopm.codsecopm = tabprotocolo.codsecopm WHERE numprotoc LIKE '$numprotoc' OR docnum LIKE '$docnum' OR (dtentrada BETWEEN '$datai' AND '$dataf')" or die (mysql_error ( ));
			      //Executa o SQL
			      $qr  = mysql_query($sql) or die(mysql_error());
			      //Percorre os campos da tabela
  /**
			       * SEGUNDA PARTE DA PAGINAÇÃO
			       */
			      //SQL para saber o total
			      $sqlTotal   = "SELECT * FROM tabprotocolo WHERE (dtentrada BETWEEN '$datai' AND '$dataf')";
			      //Executa o SQL
			      $qrTotal    = mysql_query($sqlTotal) or die(mysql_error());
			      //Total de Registro na tabela
			      $numTotal   = mysql_num_rows($qrTotal);
			      //O calculo do Total de página ser exibido
			      $totalPagina= ceil($numTotal/$quantidade);
			       //link para primeira página
					   /**
					    * Defini o valor máximo a ser exibida na página tanto para direita quando para esquerda
					    */
					   $exibir = 3;
					   /**
					    * Aqui montará o link que voltará uma pagina
					    * Caso o valor seja zero, por padrão ficará o valor 1
					    */
					   $anterior  = (($pagina - 1) == 0) ? 1 : $pagina : 1;
					   /**
					    * Aqui montará o link que ir para proxima pagina
					    * Caso pagina +1 for maior ou igual ao total, ele terá o valor do total
					    * caso contrario, ele pegar o valor da página + 1
					    */
					   $posterior = (($pagina+1) >= $totalPagina) ? $totalPagina : $pagina+1;
					   /**
					    * Agora monta o Link paar Primeira Página
					    * Depois O link para voltar uma página
					    */
					   echo '<a href="?pagina=1">Primeira Página</a> | ';
					   echo "<a href=\"?pagina=$anterior\">Página Anterior</a> | ";

					   /**
					    * O loop para exibir os valores à esquerda
					    */
					   for($i = $pagina-$exibir; $i <= $pagina-1; $i++){
					       if($i > 0)
						echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
					  }
					   /**
					    * Depois o link da página atual
					    */
					   echo '<a href="?pagina='.$pagina.'"><strong>['.$pagina.']</strong></a>';
					   /**
					    * O loop para exibir os valores à direta
					    */

					   for($i = $pagina+1; $i < $pagina+$exibir; $i++){
					       if($i <= $totalPagina)
						echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
					  }
					  /**
					    * Agora monta o Link para Próxima Página
					    * Depois O link para Última Página
					    */
					  echo " | <a href=\"?pagina=$posterior\">Próxima Página</a> | ";
					  echo "  <a href=\"?pagina=$totalPagina\">Última Página</a>";


Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.