Thepeter Posted April 7, 2012 Report Share Posted April 7, 2012 (edited) A minha Paginação esta a dar mal e eu não sei porque deixo vos aqui o código e o style para vocês me poderem ajudar a resolver o meu problemaPaginaçao.php<?php global $paginacao; if (!isset($_GET['pag'])) $_GET['pag']=1; $pag = ($_GET['pag']); $pag = filter_var($pag, FILTER_VALIDATE_INT); $inicio = 0; $limite = 7; if ($pag!='') { $inicio = $pag - 1; } $busca_total = mysql_query("SELECT COUNT(*) as total FROM anedota"); $total = mysql_fetch_array($busca_total); $total = $total['total']; $busca = mysql_query("SELECT * FROM anedota ORDER BY RAND() LIMIT $inicio, $limite"); if (mysql_num_rows($busca)>0) { while ($texto = mysql_fetch_array($busca)) { extract($texto); echo"<div class='post'> <a href='comentarios_an.php?cond=".$id_anedota."'><h2>".$titulo."</h2></a> <p>". $anedota . "</p> </div>"; } $prox = $pag + 1; $ant = $pag - 1; $ultima_pag = ceil($total / $limite); $penultima = $ultima_pag - 1; $adjacentes = 2; echo '<div class="paginacao" align="center">'; if ($pag>1) { $paginacao = '<a href="anedota.php?pag='.$ant.'">anterior</a>'; } if ($ultima_pag <= 5) { for ($i=1; $i< $ultima_pag+1; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="anedota.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="anedota.php?pag='.$i.'">'.$i.'</a>'; } } } if ($ultima_pag > 5) { if ($pag < 1 + (2 * $adjacentes)) { for ($i=1; $i< 2 + (2 * $adjacentes); $i++) { if ($i == $pag) { if (isset($paginacao)) $paginacao .= '<a class="atual" href="anedota.php?pag='.$i.'">'.$i.'</a>'; else $paginacao = '<a class="atual" href="anedota.php?pag='.$i.'">'.$i.'</a>'; } else { if (isset($paginacao)) $paginacao .= '<a href="anedota.php?pag='.$i.'">'.$i.'</a>'; else $paginacao = '<a href="anedota.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="anedota.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="anedota.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } elseif($pag > (2 * $adjacentes) && $pag < $ultima_pag - 3) { $paginacao .= '<a href="anedota.php?pag=1">1</a>'; $paginacao .= '<a href="anedota.php?pag=1">2</a> ... '; for ($i = $pag-$adjacentes; $i<= $pag + $adjacentes; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="anedota.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="anedota.php?pag='.$i.'">'.$i.'</a>'; } } $paginacao .= '...'; $paginacao .= '<a href="anedota.php?pag='.$penultima.'">'.$penultima.'</a>'; $paginacao .= '<a href="anedota.php?pag='.$ultima_pag.'">'.$ultima_pag.'</a>'; } else { $inic = $ultima_pag - (4 + (2 * $adjacentes)); if ($inic > 3){ $paginacao .= '<a href="anedota.php?pag=1">1</a>'; $paginacao .= '<a href="anedota.php?pag=1">2</a> ... '; } else{ $inic=3; $paginacao .= '<a href="anedota.php?pag=1">1</a>... '; } for ($i = $inic; $i <= $ultima_pag; $i++) { if ($i == $pag) { $paginacao .= '<a class="atual" href="anedota.php?pag='.$i.'">'.$i.'</a>'; } else { $paginacao .= '<a href="anedota.php?pag='.$i.'">'.$i.'</a>'; } } } } } if ($prox <= $ultima_pag && $ultima_pag >= 2) { $paginacao .= '<a href="anedota.php?pag='.$prox.'">próxima »</a>'; } echo $paginacao; echo '</div>'; ?> Edited April 7, 2012 by Thepeter Quote Link to comment Share on other sites More sharing options...
0 JaguA Posted April 7, 2012 Report Share Posted April 7, 2012 Qual o erro que retorna ? Quote Link to comment Share on other sites More sharing options...
0 ESerra Posted April 7, 2012 Report Share Posted April 7, 2012 Paginação com rand? Você vai ter que semear um número e usar ele sempre para que não se repitram os resultados. Quote Link to comment Share on other sites More sharing options...
0 Thepeter Posted April 8, 2012 Author Report Share Posted April 8, 2012 (edited) Eu meti o Rand para ele ao passar para a 2 pagina mudar senão não muda ficam os meus registos , e não sei porque que não muda de registos :S Edited April 8, 2012 by Thepeter Quote Link to comment Share on other sites More sharing options...
0 ESerra Posted April 8, 2012 Report Share Posted April 8, 2012 O RAND() serve para deixar um resultado randômico, se você estiver paginando este resultado, pode que os resultados da primeira página apareçam na segunda, já que está randômico, por isto você tem que sortear um número e usar ele dentro do rand sempre, assim fica um randômico "controlado". Quote Link to comment Share on other sites More sharing options...
0 Thepeter Posted April 9, 2012 Author Report Share Posted April 9, 2012 Sim mas eu queria tipo tirar o Rand e na primeira pagina aparecer 1 ao 10 e na segunda do 11 ao 20 mas não da Quote Link to comment Share on other sites More sharing options...
0 ESerra Posted April 11, 2012 Report Share Posted April 11, 2012 É só remover o ORDER BY RAND() Quote Link to comment Share on other sites More sharing options...
0 Thepeter Posted April 17, 2012 Author Report Share Posted April 17, 2012 Se eu tirar o rand não aparece os outros registos a aparecem os mesmos Quote Link to comment Share on other sites More sharing options...
0 JaguA Posted April 17, 2012 Report Share Posted April 17, 2012 como não? sem o rand ele mantem a sequencia por ID que é dafult mostrando os valores ate o LIMIT que foi passado. Quote Link to comment Share on other sites More sharing options...
0 Ricardo T. do Prado Posted April 18, 2012 Report Share Posted April 18, 2012 procure por jqpager, "write less, do more" Quote Link to comment Share on other sites More sharing options...
Question
Thepeter
A minha Paginação esta a dar mal e eu não sei porque deixo vos aqui o código e o style para vocês me poderem ajudar a resolver o meu problema
Paginaçao.php
Edited by ThepeterLink to comment
Share on other sites
9 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.