Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Na Minha Paginação


thescente

Pergunta

bom dia....

vou listar o que esta acontecendo com minha paginação:

1 - no banco tenho 16 registros mas só exibe 10;

2 - na url da noticia eu passo o parametro da pagina, mas ao invés de pegar o da pagina atual ele pega o da proxima;

fora esses 2 problemas o resto funciona normalmente....se alguém puder dar um help, agradeço desde já...

  <?

 

  if (!isset($pag)){

  $pag = 0;

  }

 

  $inicial = $pag * 5;

 

  $sql = "select * from noticias where publicada = 'Sim' order by data desc limit $inicial,5";

  $res = $db->select($sql);

  $num = $db->num_rows($res);

   

  $total_pag = intval($num / 5);

 

  if ($pag <> 0) {

  $url = $pag - 1;

  }

  if ($pag < $total_pag) {

  $url = $pag + 1;

  }

 

  for ($i=0; $i<$num; $i++){

  extract($db->fetch($res));

  echo '<tr>';

            echo '<td valign="top" class="td_hide">';

    echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'" class="link_noticias">';

  echo '<b>'.DmData($data).'</b> - '.substr($titulo, 0, 36).'...</a>';

    echo '</td>';

        echo '</tr>';

  }

 

  echo '<tr>';

  echo '<td class="td_hide">';

 

  if ($pag <> 0) {

    $url = $pag - 1;

    echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'"> Anterior </a>';

  } else {

    echo "Anterior ";

  }

  if ($pag < $total_pag) {

    $url = $pag + 1;

    echo '<a href="noticias.php?id='.$idnoticia.'&pag='.$url.'"> Próxima</a>';

  } else {

    echo "Próxima";

  }

 

  ?>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

eu acho q tipo, imagine q você quer ir a página 2, intao, te´ra q exibir os dados 5 a 10 ceerto???

se você poe, $inicial = 2 * 5; o resultado será 10, intao vai exibir da 10 a 15, intao coloque

$inicial = $pag * 5 - 5;

se a pag for 2 vai te retornar 5, e vai até o 10,

se a pag for 3, vai te retornar do 10 ao 15.....

acho q é isso

Link para o comentário
Compartilhar em outros sites

  • 0

Companheiro, não é por nada não, mas se quiser um código muito bom para páginar seu BD, teste este aqui:

<?
//ATENÇÃO ESTE SCRIPT É PARA USO LIVRE EM QUALQUER APLICAÇÃO FOI DESENVOLVIDO COM A AJUDA DE OUTROS
//SCRIPTS DE CÓDIGO ABERTO - VOCÊ PODE ALTERÁ-LO E UTILIZA-LO  DA MANEIRA  QUE QUIZER MAS POR FAVOR 
//MANTENHA OS CRÉDITOS - CASO você UTILIZE ESTE SCRIPT POR FAVOR ME ENVIE UM E-MAIL PARA ME NOTIFICAR 
//DO USO.
?>


<style>
.estilos { color: #000000; text-decoration: none} A:hover {text-decoration: underline}
</style>
  	<?
      function getmicrotime(){
  	list($sec, $usec) = explode(" ",microtime()); 
  	return ($sec + $usec); 
  	} 
  	$time_start = getmicrotime(); 
//#####################################################################
  	$arquivo = "index.php"; // COLOQUE AQUI O NOME DADO A ESTE ARQUIVO
        	//CASO você TENHA QUE UTILIZAR OUTRAS VARIÁVEIS JUNTO COM A VARIÁVEL (id) COLOQUE JUNTO EXEMPLO: "index.php?moldura=$mold&"
  	$banco = "classifad";   // NOME DO BANCO DE DADOS
  	$endereco = "localhost";  // ENTRE COM O ENDEREÇO DO BANCO DE DADOS
  	$usuario = "";   // NOME DE USUÁRIO DO MYSQL
  	$password = "";   // SENHA DO MySQL
  	$table = "classifad";   // NOME DA TABELA A SER UTILIZADA
  	$maxpag = 1;     // MÁXIMO DE RESULTADOS POR PÁGINA
  	$maxlnk = 10;     // MÁXIMO DE LINKS POR PÁGINA
  	if ($id == ''){$param = 0;} else {
  	$temp = $id;
  	$passo1 = $temp - 1;
  	$passo2 = $passo1*$maxpag;
  	$param = $passo2;}
//#####################################################################
  	$res = mysql_connect("$endereco", "$usuario", "$password");
  	$sql = "select * from $table";
  	$sql_01 = "select * from $table  limit $param,$maxpag";
  	$res1 = mysql_db_query("$banco", "$sql", $res);
  	$res2 = mysql_db_query("$banco", "$sql_01", $res);
    	$totreg = mysql_num_rows($res1);
  	$totreg_01 = mysql_num_rows($res2);
//#####################################################################
  	$results_tot = $totreg;
  	$results_parc = $totreg_01;
  	$result_div = $results_tot/$maxpag;
  	$n_inteiro = (int)$result_div;
  	if ($n_inteiro < $result_div) {$n_paginas = $n_inteiro + 1;}
  	else {$n_paginas = $result_div;}
  	$pg_atual = $param/$maxpag+1;
  	$reg_inicial = $param + 1;
  	$pg_anterior = $pg_atual - 1;
  	$pg_proxima = $pg_atual + 1;
  	$time_end = getmicrotime(); 
  	$time = $time_end - $time_start; ?>

<html>
<head>
<title>Paginação de Resultados</title>
</head>
<body topmargin="0" leftmargin="0">
<table align="center" border="0" cellspacing="0" width="600">
  <tr>
    <td bgcolor="#3366CC" width="859">
      <p align="center"><font color="#FFFFFF" size="2" face="Arial">Foram encontradas
       <?echo $totreg;?> ocorrências em
       <?echo $n_paginas?> páginas de resultados - visualizando&nbsp; <?echo $maxpag;?>
      resultados por página</font></td>
  </tr>
</table>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>

  	<?while($resultado = mysql_fetch_array($res2)) { $contador ++;?>


<?
// ################## COLOQUE AQUI OS RESULTADOS DA PESQUISA ######################?>


<p style="word-spacing: 0; margin: 0" align="center">
<font color="#000000" size="2" face="Arial">
<?echo $resultado["title"];?><br>
<?echo $resultado["poster"];?><br>
<?echo $resultado["description"];?></font></p>


<?
// ############################ FIM DOS RESULTADOS ###############################?>
  	
  	<?}$reg_final = $param + $contador;?>

<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<div align="center">
  <table border="0" cellspacing="0" width="147">
    <tr>
      <td width="63">
        <p align="center"><font face="Verdana" size="2">

  	<?if ($id > 1) {?><a href="<?$arquivo?>?id=<?echo $pg_anterior;?>"
    class="estilos"><b>&lt;&lt;anterior</font><?}?></a></td>
  	<?if ($temp >= $maxlnk){
  	if ($n_paginas > $maxlnk) {$n_maxlnk = $temp + 4;
  	$maxlnk = $n_maxlnk;
  	$n_start = $temp - 6;
  	$lnk_impressos = $n_start;}}
  	while(($lnk_impressos < $n_paginas) and ($lnk_impressos < $maxlnk))
  	{ $lnk_impressos ++;?>

      <center>
      <td width="7">
        <p align="center"><font face="Verdana" size="2">

  	<?if ($pg_atual != $lnk_impressos){echo "<a href=\"$arquivo?id=$lnk_impressos\" class=\"estilos\">";}
  	if ($pg_atual == $lnk_impressos){echo "<h1>$lnk_impressos<h1>";} else {echo "$lnk_impressos";}?></a></b></font></td><?}?>

   </font></td>
      </center>
      <td width="200">
        <p align="center"><font face="Verdana" size="2">
  
  	<?if ($reg_final < $results_tot) {?><a href="<?$arquivo?>?id=<?echo $pg_proxima;?>" class="estilos"><b>Próximo&gt;&gt;</b></font></a></td><?}?>

    </tr>
  </table>
</div>
<p style="word-spacing: 0; margin: 0">&nbsp;</p>
<div align="center">
<table border="0" cellspacing="0" width="530">
  <tr>
    <td bgcolor="#3366CC" width="859">
      <p align="right" style="word-spacing: 0; margin: 0"><font color="#FFFFFF" size="2" face="Arial">mostrando <?echo $reg_inicial;?> - <?echo $reg_final;?> sobre <?echo $totreg;?></font><font color="#FFFFFF" size="2" face="Arial">
      <?$texto=printf ("A pesquisa demorou <b>%.3f</b> segundos",$time);?></font></td>
  </tr>
</table>
</div>
</body>
</html> 

Link para o comentário
Compartilhar em outros sites

  • 0
bom dia....

vou listar o que esta acontecendo com minha paginação:

1 - no banco tenho 16 registros mas só exibe 10;

2 - na url da noticia eu passo o parametro da pagina, mas ao invés de pegar o da pagina atual ele pega o da proxima;

Cara, n entendi o n° 2 hehehe ele faz a busca como??? com um a mais no seu link?

Não tem esse script na net pra poder ver como que está executando?? é bem masi fácil...

Quanto ao 1, ele limita em 2 "proximos", por isso que exibe somente 10, isso???

Tente passar como parãmetro diretamente pelo brownser para abrir o "terceiro" próximo, vê se funciona wink.gif e vê se consegue postar o endereço do sistema pra dar uma olhadinha na execução...

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...