Jump to content
AprendendoC

[Resolvido] erro com paginação em php

Recommended Posts

AprendendoC

bom dia galera, bom é o seguinte estou com um probleminha aqui na paginação de resultados, quando eu coloco o LIMIT ele so mostra os 5 primeiros resultados e se tiver mais que 5 ele não mostra o link pra ir pra pagina 2 pra continuar vendo o resto, mas se tiro o LIMIT ele mostra todos os resultados na mesma pagina e mostra o link pra pagina 2..

segue o codigo para darem uma olhada...

<div id="page_content">

<div id="sidebar">
<?php include('sidebars/sidebar.php'); ?>
</div><!-- sidebar -->

<div id="page">
<?php

/* script para fazer paginação */
$pag =$_GET['page'];
if($pag >= 1):
$pag = $pag;
else:
$pag = 1;
endif;
$maximo = 5; // resultados por pagina
$inicio = ($pag * $maximo) - $maximo;
/* aqui termmina o script de paginação */

$topico = $_GET['cat'];
require_once("classes/posts.class.php");
$post = new posts();
$post->extraSelect = "WHERE categoria = '$topico' LIMIT $inicio, $maximo";
$post->selecionaTudo($post);
if($post->linhasAfetadas <= 0):
echo 'nenhum registro encontrado';
else:
while($res = $post->retornaDados()):
 echo '<div class="categoria">';
 printf('<h1>%s</h1>', $res->titulo);
 printf('<span class="info">Data: %s | Autor: %s | Categoria: %s | Visitas: %s</span>', date("d - m - Y | H : i", strtotime($res->data)), $res->autor, $res->categoria, $res->visitas);
 printf('<a href="uploads/%s/%s" rel="shadowbox" >', $res->categoria, $res->img);
 printf('<img src="uploads/%s/%s" alt="" width="150" class="linleft" />', $res->categoria, $res->img);
 printf('</a>');
 printf('<p>%s</p>', $res->texto);
 /* codigo que atualiza as visitas do post no bd */
 $pot = new posts(array(
 'visitas' => $res->visitas+1));
 $pot->valorPk = $res->id;
 $pot->atualizar($pot);
 echo '</div><!-- categoria -->';
endwhile;
/* faz a paginação */
$total = $post->linhasAfetadas;
echo $total;
$paginas = ceil($total/$maximo);
$links = 5;

echo '<a href="index.php?pagina=nav/categoria&cat='.$topico.'&pag=1">Primeira Página</a>   ';

for($i = $pag-$links; $i <= $pag-1; $i++):
 if($i <= 0):
 else:
 echo '<a href="index.php?pagina=nav/categoria&cat='.$topico.'&pag='.$i.'">'.$i.'</a>   ';
 endif;
endfor;

echo $pag.'   ';

for($i = $pag+1; $i <= $pag+$links; $i++):
 if($i > $paginas):
 else:
 echo '<a href="index.php?pagina=nav/categoria&cat='.$topico.'&pag='.$i.'">'.$i.'</a>   ';
 endif;
endfor;

echo '<a href="index.php?pagina=nav/categoria&cat='.$topico.'&pag='.$paginas.'">Última Página</a>   ';
/* termina a paginaçã */
endif;
?>
</div><!-- page -->

</div><!-- page content -->

Share this post


Link to post
Share on other sites
Alex.NET

Boas,

deixa ver se percebi, se colocares o Limit, aparece os resultado que queres, mas não aparece o link para a segunda página, e se retirares o limit, aparecem todos (os que deviam e os que não deviam) mas já te aparece o link para a página 2?

cumprimentos

Share this post


Link to post
Share on other sites
AprendendoC

umas imagens para explicar melhor... sem o LIMIT aparece todos os que deviam e os que nao deviam e o link pra 2 pagina aparece tbm...33y752r.png

com o LIMIT aparece os resultados que quero mas some o link pra 2 pagina...

96yz2t.png

ai nao tem como ver o s resultados da segunda pagina....

Edited by AprendendoC

Share this post


Link to post
Share on other sites
HappyHippyHippo

tens de separar os processos.

- ou limitas com o LIMIT no SQL, e usas um segundo comando para saber quantos registos tens

- ou limitas em PHP, depois de perguntar por todos os registos


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Alex.NET

tens de separar os processos.

- ou limitas com o LIMIT no SQL, e usas um segundo comando para saber quantos registos tens

- ou limitas em PHP, depois de perguntar por todos os registos

eu usei uma páginação à algum tempo e fiz como o HappyHippyHippo disse, useu um 2º SQL para saber o total de registos.

$paginas_cont = ($row3[0])/$pp;

onde o $paginas_cont é igual ao cont do total de registo a dividir pela variavel $pp, que é o numero de registos que quero por página.

Share this post


Link to post
Share on other sites
AprendendoC

boas galera consegui resolver o meu problema...

eis o que mudei no codigo...

// mudei a parte do get
$pagina = $_GET['pag'];
if(!$pagina ):
 $pagina = 1;
endif;
// e aqui depois do while modifiquei pegando os registros de um campo
$post = new posts();
$post->extraSelect = "WHERE categoria = '$topico'";
$post->selecionaTudo($post);
$total = $post->linhasAfetadas;

obrigado pela ajuda de todos.. finalmente funciono direitinho...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.