Após um desenvolvedor ter me pedido ajuda em uma consulta mysql em que gerava um count no meio de um join e consequentemente, pesando muito a query, decidir pegar um velho script de paginação em php que deve ajudar muito.

 

Lembrando que count no meio do Join vai pesar. ;-) 

Por isso essa dica esta em mysql. 

 

 

==> Este código  deve ser salvo em um arquivo chamado paginacao.php este arquivo possui os procedimentos geral do controle da paginação.

 

<?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>&laquo; Anterior</b></a>";

 } else {

 echo "<font color=#CCCCCC>&laquo; 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 "&nbsp;<span class=pgoff>[$i_pg]</span>&nbsp;";

 } else {

 $i_pg2 = $i_pg-1;

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

 }

 }

 

 // 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&oacute;ximo &raquo;</b></a>";

 } else {

 echo "<font color=#CCCCCC>pr&oacute;ximo &raquo;</font>";

 }

 ?>

 

 

==> Este arquivo necessita claro de adaptação mas ja da uma ideia para desenvolver pode-se tira algumas coisa e colocar outra ai é com você. 

 

<html>

<head>

<TITLE>Gerador de Codigo Geracao tabelas</TITLE>

<script src="/../funcoes/mascaras.js" type="text/javascript"></script>

<link href="/../css/simples.css" rel="stylesheet" type="text/css" media="screen" />

<body bgcolor="#EFEFEF">

  <div align="center">

 

<?php

// Caso voce tenha um menu generico => menu_generico();

 

// valida_acesso para controla o acesso ( como vai se fazer isso ai e com voce )

if (valida_acesso()==1){

//echo'<meta HTTP-EQUIV = "Refresh" CONTENT = "12; URL =../../login.php">';

//echo'<a href="/../../login.php"> cccccccccccccc </a>';

exit;  

}else{

 

// Faz o Primeiro Select pegando o  total de registros 

$exp0="SELECT * FROM `cobranca_cad_grupo` ";

$sql0 = mysql_query($exp0);

echo "Quantidade Registros = ";

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

 

// Pego o numero da pagina de paginacao da consulta

 $pg = @anti_injection($_GET['pg']);

 if (empty($pg)) {

 $pg = 0;

 }

 

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

 

 $inicial = $pg * $numreg;

//  Variavel para filtro => $filtro 

 //$filtro="where `catalagoint`.`codigoitem`= $codigoitem";

 // $filtro="Where ativotipo='Ativo Permanente' ";

  $filtro=" ";

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

 echo $sql = mysql_query("SELECT * FROM `cobranca_cad_grupo`  $filtro ORDER BY  `cliente` ASC LIMIT $inicial, $numreg");

 

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

// $sql_conta = mysql_query("SELECT * FROM clientes");

 

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

 echo "<br>";

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

 

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

 // Serve para iniciar a tabela e imprimir o titulo da tabela

echo '<table id="customers">

 <tr>

 <th>Codigo Cliente</th>

 <th>Nome Fantasia</th>

 <th>Tipo</th>

   <th>Ref. Int.</th>

   <th>Area</th>

      </tr>';

 $contaCor=0;

 

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

if($contaCor>1){

 $contaCor=0;

}

if($contaCor==0){

  //aqui vc vai desenhar linha de uma cor

  echo '<tr>';

}

if($contaCor==1){

  //aqui vc vai desenhar linha de uma cor

  echo '<tr class="alt">';

$contaCor++;

echo'

       <td><a href="/consulta_cliente_01.php?id_codigo='.$aux['cliente'].'" title="Clique para ver Ficha Completa">'.$aux['cliente'].'</a></td>

<td>'.$aux['n_fantasia'].'</td>

<td>'.$aux['nome'].'</td>

<td>'.$aux['tipo_cliente'].'</td>

<td>'.$aux['ref_int'].'</td>

<td>'.$aux['area'].'</td>

 

</tr>

       ';  

 

 }

echo '</table>';

}

 ?>

</div>