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

Ajuda Com Paginação Simples


juliano.ma

Pergunta

Boa tarde amigos!

Tenho uma página de notícias, quando o leitor clika no título dela é exibida a noticia completa em outra página.

como eu faço para implementar a paginação do tipo:

Anterior | Próxima

Gostaria também de quando fosse a última notícia (mais recente) o link de "Próxima" não aparecesse e também quando fosse a primeira do banco de dados o link "Anterior" não aparecesse.

Tentei isso olhem:

$id = $linha['id'];
$anterior = $id-1;

if ($anterior < 1) {
        echo "";
        }       else {
        echo "<a href="shownew.php?id=$anterior">Anterior</a>";
        }
                        
$proxima = $id+1;
if ($proxima > 1) {   // é aqui que está o problema em como saber o id da ultima noticia existente
        echo "";
        }       else {
        echo "<a href="shownew.php?id=$proxima">Próxima</a>";
        }

Outra dúvida aproveitando, em minha página está aparecendo a tag "?>" de bobeira lá, já revisei todo o código e não achei o problema, já até removí todas as tags html deixando só a php e nada.

Abraços!

Editado por juliano.ma
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

De modo simplória daria pra fazer assim... duas querys uma para buscar o próximo ID e o outro pra buscar o anterior, você deve usar o LIMIT para permitir que venha apenas um resultado por query, ai você usa o mysql_num_rows para contar quantos resultados retornaram, se for igual é zero é porque não deve imprimir próximo (ou anterior)...

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Eserra por ter respondido!

Gostaria de mais um ajuda sua;

Assim funciona direitinho olha:

<?php
include("../config.php");
$sql = "SELECT * FROM noticias WHERE id='$_GET[id]'";
$resultado = mysql_query($sql);
while($linha = mysql_fetch_array($resultado)) {
$id = $linha['id'];
$data = $linha['data'];
$datacerta = date("d/m/Y", strtotime($data));
$hora = $linha['hora'];
$titulo = $linha['titulo'];
$subtitulo = $linha['subtitulo'];
$texto = $linha['texto'];
$anterior = $id-1;
$sqlr = "select max(id) as total from noticias";
$resultados = mysql_fetch_array(mysql_query($sqlr));
$ultima_noticia = $resultados['total'];
$proxima = $id+1;
?>

<html>
<head>
</head>
<body bgcolor="C4E5F8">
<table width="100%" border="0">
  <tr>
    <td><b><?php echo "$titulo" ?></b></td>
  </tr>
  <tr>
    <td><?php echo "$datacerta - $hora" ?></td>
  </tr>
  
  <tr>
    <td><?php echo "$texto" ?></td>
  </tr>
</table>
<hr>
<p>
  <?php
}
?>
<p align="center">
<?php
if ($anterior < 1) {
    echo "";
    }    else {
    echo "<a href=\"shownew.php?id=$anterior\">Anterior</a>";
    }
?> | <?php
if ($proxima > $ultima_noticia) {
        echo "";
        }  else {
        echo "<a href=\"shownew.php?id=$proxima\">Próxima</a>";
        }
?>
</body>
</html>

Assim funciona perfeitamente se no banco de dados estiver inserido niticias desde o ID "1" sem pular um se quer.

tipo: 1 2 3 4 5 6 7 8 9 e assim por diante.

mas se tiver um ID vazio ele não funciona, pois imprime um ID vazio no link.

Como eu poderia chekar se o ID anterior ou próximo está vazio e fazer que "se" ele estiver vazio pular para a próxima?

seria um if dentro do if?

Editado por juliano.ma
Link para o comentário
Compartilhar em outros sites

  • 0

ESerra, poderia me dar uma força em como pegar os ids anterior e próximo?

Como seria a query?

tava pensando em algo assim:

pego todos os ids e atribuo uma variável para cada um

<?php
$sql = "SELECT id FROM noticias";
$resultado = mysql_query($sql);
while($linha = mysql_fetch_array($resultado)) {
$id = $linha['id'];
$idatual = $id;
$a = id1;
$b = id2;
$c = id3;
//ai comparo, se for igual 
if ($idatual == ($a, $b, $c)) {     // não sei se pode fazer assim nessa linha
      echo ...
?>

Editado por juliano.ma
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...