Ir para conteúdo

POWERED BY:

Arquivado

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

CrazyLOL

Problema em paginação.

Recommended Posts

Bom estou com uma problema na realização de uma paginação minha aqui no site.

 

é o seguinte, no meu site na pagina principal tem algumas CATEGORIAS exemplo de uma é ADMINISTRAÇÃO, bom quando a pessoa clica nessa categoria é passando pelo GET um id da ADMINISTRACAO no caso é 1 e na proxima pagina mostra as pessoas cadastradas nessa categoria.

Sendo que realiza um select procurando todas as pessoas cadastradas na categoria = 1 ( admin ).

 

Bom até acho que todos entenderam certo? Agora vem o caso...

Esse codigo abaixo é a pagina que recebe meu GET...

 <?php 

       $id_cu = $_GET['id'];

       $numreg = 10; // InicioPaginacao
       if (!isset($pg)) {
               $pg = 0;
       }
       $inicial = $pg * $numreg; #FIM PAGINACAO

	if($_POST['filtrar'] == 'Filtrar') {

	$b_area = $_POST['b_area'];
	$b_tempo = $_POST['b_tempo'];
	$b_sexo = $_POST['b_sexo'];
	$b_idade =$_POST['b_idade'];

	# checa se a idade é <= 18
	if($b_idade == 1){	
       $sql = mysql_query("SELECT * FROM ec_curriculo where ob_area='$b_area' and ob_tempo='$b_tempo' and cd_sexo='$b_sexo' and cd_idade <= '18' LIMIT $inicial, $numreg");
       $sql_conta = mysql_query("SELECT * FROM ec_curriculo where ob_area='$b_area' and ob_tempo='$b_tempo' and cd_sexo='$b_sexo' and cd_idade <= '18'");
	}else {

       // Faz o Select pegando o registro inicial até a quantidade de registros para página
       $sql = mysql_query("SELECT * FROM ec_curriculo where ob_tp_curriculo='".$id_cu."' order by data_cadastro desc LIMIT $inicial, $numreg");

       // Serve para contar quantos registros você tem na seua tabela para fazer a paginação
       $sql_conta = mysql_query("SELECT * FROM ec_curriculo where ob_tp_curriculo='".$id_cu."' order by data_cadastro desc");
	}

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

       include("../vagas/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 ($s = mysql_fetch_array($sql)) { ?>

 

Bem, e aqui é o arquivo paginação;

<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>";
       }

       // 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 ($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>";
       }
?>

 

Minha questão é quando a pessoa clica por exemplo no LINK 2 que iria para pagina 2 e mostrar o restante não está indo, provalvmente é porque o ID_CU que pega o id da categoria não está sendo passada certo?

 

Como que ficaria nesse caso?

 

Agradeço já antecipadamente e peço desculpas caso nao fui claro suficiente..

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende, muita das vezes, as URLs Amigáveis podem provocar erros quantos aos métocos $_GET's.

Isso já ocorreu comigo várias vezes.

 

OU

 

Tente mudar seu for para isto:

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

Porque eu não vi erro nenhum em seu código.

Bem, pelo menos eu. Outros podem achar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Gabriel, ele não tem erros (até agora) questão é essa que tentei explicar mesmo.

Quando eu clico para ir na pagina 2 onde deveria continuar meu registro não está indo, fiquei meio sem entender o que posso fazer.. =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então. É nisso, divide o conteúdo corretamente, mas ao receber o ?pg=2, a URL Amigável pode dar erros quanto à isso.

Tente testá-lo com o endereço completo, se você utilizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te passar um script que possuo aqui:

<?php
//inclusão da conexão com banco de dados
 //A quantidade de valor a ser exibida
 $quantidade = 3;
 //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 tabela ORDER BY id DESC LIMIT $inicio, $quantidade";
 //Executa o SQL
 $qr  = mysql_query($sql) or die(mysql_error());
 //Percorre os campos da tabela
while($n=mysql_fetch_object($qr)){
echo $n->nome . "<br>";
 }
 /**
  * SEGUNDA PARTE DA PAGINAÇÃO
  */
 //SQL para saber o total
 $sqlTotal   = "SELECT id FROM tabela";
 //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
  echo '<a href="?pagina=1" class="button2">Primeira Página</a> - ';
  //loop para mostra a os links da paginação
  for($i = 1; $i <= $totalPagina; $i++){
      if($i == $pagina)
    echo $i;
     else
    echo " <a href=\"?pagina=$i\" class=\"button2\">$i</a> ";
  }
  //link para ultima página
  echo " - <a href=\"?pagina=$totalPagina\" class=\"button2\">Ú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.