SirSmart Postado Março 28, 2006 Denunciar Share Postado Março 28, 2006 Galera preciso fazer uma paginação bem simples, como eu faço paginação???Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 28, 2006 Denunciar Share Postado Março 28, 2006 Eu tenho uma aqui. Mas não é tãããão simples assim!!! Se quiser dar uma olhada... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 28, 2006 Autor Denunciar Share Postado Março 28, 2006 Posta pra mim aqui, por favorObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 28, 2006 Denunciar Share Postado Março 28, 2006 <?php /*Sistema de Paginação dos Comentários*/ $registros_por_pagina = 10; $pagina = empty($HTTP_GET_VARS['pagina'])? 1 : $HTTP_GET_VARS['pagina']; $pagina_anterior = $pagina - 1; $pagina_posterior = $pagina + 1; $registro_inicio = ($registros_por_pagina * $pagina) - $registros_por_pagina; $query = mysql_query("Select com_descricao,loc_login,com_data,com_hora from comentario where pro_codigo = $prj"); $total_de_registros = mysql_num_rows($query); if ($total_de_registros <= $registros_por_pagina) { $total_de_paginas = 1; } elseif (($total_de_registros % $registros_por_pagina) == 0) { $total_de_paginas = ($total_de_registros / $registros_por_pagina); } else { $total_de_paginas = ($total_de_registros / $registros_por_pagina) + 1; } $total_de_paginas = (int) $total_de_paginas; if (($pagina > $total_de_paginas) || ($pagina < 0)) { echo '<i>O número da página é invalido</i>'; exit; } $sql = $sql . " LIMIT $registro_inicio, $registros_por_pagina"; $query = mysql_query($sql); $total_de_registros_da_pagina = mysql_num_rows($query); if ($total_de_registros_da_pagina == 0) { echo '<b>Não há comentários nessa página</b>'; exit; } $link_de_navegacao = ''; if($pagina_anterior) { $link_de_navegacao .= " <a href='comentario.php?pagina=$pagina_anterior&prj=$prj'>«« Anterior</a> "; } for($i = 1; $i <= $total_de_paginas; $i++) { if($i != $pagina) { $link_de_navegacao .= " <a href='comentario.php?pagina=$i&prj=$prj'>$i</a> "; } else { $link_de_navegacao .= " <b>[$i]</b> "; } } if($pagina != $total_de_paginas) { $link_de_navegacao .= "<a href='comentario.php?pagina=$pagina_posterior&prj=$prj'>Próximo »»</a>"; } echo "<table width='480' border='0'>"; while ($retorno = mysql_fetch_array($query)) { echo "<tr>"; echo "<td width='450'><u>$retorno[1]</u> (<strong>$retorno[2] - $retorno[3]</strong>)</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='450'>$retorno[0]</td>"; echo "</tr>"; } echo "</table>"; echo "<hr>"; echo "<table width='480' border='0'>"; echo "<tr><td><center>$link_de_navegacao</center></td></tr>"; echo "</table>"; ?>Futuro sistema de comentários do meu site, mas já usei em vários lugares. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 Obrigado pela ajuda.Só gostaria de saber o seguinte:Quando a gente clica na segunda pagina ele processa a query novamente ou já rodou a query.... Ele apenas "ocultou" nas paginas os registros ??Outra coisa esta dando erro na linha 40, porque o sql's estão com o mesmo nome...É assim mesmo ou não??Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 29, 2006 Denunciar Share Postado Março 29, 2006 Só gostaria de saber o seguinte:Quando a gente clica na segunda pagina ele processa a query novamente ou já rodou a query.... Ele apenas "ocultou" nas paginas os registros ??Outra coisa esta dando erro na linha 40, porque o sql's estão com o mesmo nome...É assim mesmo ou não?? Primeiro: Sim ele processa a query novamente a cada clique nos números das páginas.Segundo: Há um pequeno erro na linha 6 onde o correto é:/*Sistema de Paginação dos Comentários*/ $registros_por_pagina = 10; $pagina = empty($HTTP_GET_VARS['pagina'])? 1 : $HTTP_GET_VARS['pagina']; $pagina_anterior = $pagina - 1; $pagina_posterior = $pagina + 1; $registro_inicio = ($registros_por_pagina * $pagina) - $registros_por_pagina; $sql = "Select com_descricao,loc_login,com_data,com_hora from comentario where pro_codigo = $prj"; $query = mysql_query($sql);Lembre-se de fazer a conexão com o banco e corrigir os selects para funcionar com as suas tabelas. Quanto a linha 40, não deu erro aqui não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 Cara desculpa pela outra postagem....Deixa eu te perguntar um coisa... A variável $prj que está no seu select você passa ela como get depois. porque???O que está faltando pra mim concertar as outras paginas, porque só me exibe na pagina 1, quando vou para a pagina 2 diz que a pagina o numeor da pagina é inválida.. Não entendi o porqueSe você puder me ajudar eu agradeçoObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 29, 2006 Denunciar Share Postado Março 29, 2006 $prj é passada através de um link, numa outra página quando eu listo os projetos do meu site. A paginação ainda não está implementada lá.Se você não colocar a mão na massa e adaptar a minha rotina pra sua página, nós vamos ficar 1 ano aqui e não vamos chegar a lugar algum!!!Faz o seguinte. Me dá a estrutura da tabela que você tem pra fazer a paginação e como vai funcionar o processo que eu vou analisar e te dizer!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 É o seguinte :O meu Select faz o seguinte: SELECT count(op_precos.id_fornec) as cout_fornec, op_produtos.cod_fornec, op_precos.id_produto, op_precos.valor , op_precos.id_fornec, op_produtos.descricao, op_produtos.especificacao, op_produtos.id, op_precos.valor, op_produtos.fabricante FROM op_precos JOIN op_produtos ON op_precos.id_produto = op_produtos.id WHERE op_produtos.descricao = '".$_SESSION['busca']."' GROUP BY op_precos.id_produto, op_produtos.fabricante ORDER BY op_precos.valor Aí eu faço a paginação que você me passou. O problema é que quando eu clico pra ir a segunda paginaEle não vem nada... Eu só mudei o select que você fez... Só gostaria de saber se eu tenho que passar alguma coisa como parametro ou não????porque a minha estrutura do sistema, está passando primeiro para uma tela chamada produto.pho que eu pego a sessão e chamo a paginação....Só isso quando eu clico no link da segunda pagina eu chamo produto.php e assim concecutivamente....Acho que é issoObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 29, 2006 Denunciar Share Postado Março 29, 2006 Pra continuar passando você vai fazer exatamente assim:if($pagina_anterior) { $link_de_navegacao .= " <a href='comentario.php?pagina=$pagina_anterior&busca=$SESSION['busca']'>«« Anterior</a> "; } for($i = 1; $i <= $total_de_paginas; $i++) { if($i != $pagina) { $link_de_navegacao .= " <a href='comentario.php?pagina=$i&busca=$SESSION['busca']'>$i</a> "; } else { $link_de_navegacao .= " <b>[$i]</b> "; } }Aí vai passar para a próxima página com a sua variável de busca. Deve resolver... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 Cara está me dando erro nas linhas por causa das aspas...Então eu fiz o seguinte if($pagina_anterior) { $link_de_navegacao .= ' <a href="produtos.php?pagina=$pagina_anterior&busca=$SESSION["busca"]">«« Anterior</a> '; } for($i = 1; $i <= $total_de_paginas; $i++) { if($i != $pagina) { $link_de_navegacao .= '<a href="produtos.php?pagina=$i&busca=$SESSION["busca"]">$i</a>'; } else { $link_de_navegacao .= " <b>[$i]</b> "; } } Eu inverti as aspas... Só que está me saindo assim no numero da paginação [1] $i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$i$iPróximo »» Se você puder me ajudar eu agradeçoObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 29, 2006 Denunciar Share Postado Março 29, 2006 tenta assim...if($pagina_anterior) { $link_de_navegacao .= " <a href=".'"'."comentario.php?pagina=$pagina_anterior&busca=$SESSION[".'"'."busca".'"'."]".'"'.">«« Anterior</a> "; } for($i = 1; $i <= $total_de_paginas; $i++) { if($i != $pagina) { $link_de_navegacao .= " <a href=".'"'."comentario.php?pagina=$i&busca=$SESSION[".'"'."busca".'"'."]".'"'.">$i</a> "; } else { $link_de_navegacao .= " <b>[$i]</b> "; } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 Então eu fiz o seguinte if($pagina_anterior) { $link_de_navegacao .= " <a href='produtos.php?pagina=$pagina_anterior&busca=$_SESSION[busca]'>«« Anterior</a> "; } for($i = 1; $i <= $total_de_paginas; $i++) { if($i != $pagina) { $link_de_navegacao .= " <a href='produtos.php?pagina=$i&busca=$_SESSION[busca]'>$i</a> "; } else { $link_de_navegacao .= " <b>[$i]</b> "; } } o problema é que quando vou para a segunda pagina me mostra a seguinte mensagem O número da página é invalido Eu não entendo o porque disso.....Será que é porque eu estou chamando a mesma pagina novamente.. Tipo eu chamo produtos que chama paginação. Quando clico na segunda pagina, eu chamo produtos que chama paginação novamente..Será que é isso??Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 McBlade Postado Março 29, 2006 Denunciar Share Postado Março 29, 2006 Eu não entendo o porque disso.....Será que é porque eu estou chamando a mesma pagina novamente.. Tipo eu chamo produtos que chama paginação. Quando clico na segunda pagina, eu chamo produtos que chama paginação novamente..Será que é isso?? if (($pagina > $total_de_paginas) || ($pagina < 0)) { echo '<i>O número da página é invalido</i>'; exit; }Ou a $pagina é maior que $total_de_paginas ou $pagina tá vindo menor q 0Debuga dando um echo $pagina e echo $total_de_paginas pra saber o que tá vindo!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SirSmart Postado Março 29, 2006 Autor Denunciar Share Postado Março 29, 2006 Então o problema é que quando eu vou para a segunda pagina ele não executa a query novamente e me retorna 0 no total_de_registros $total_de_registros = mysql_num_rows($query); A logica é sempre passar na query a cada pagina clicada ou não??Eu estou fazendo errado??Até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
SirSmart
Galera preciso fazer uma paginação bem simples, como eu faço paginação???
Obrigado
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
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.