Ir ao conteúdo

PHP Sistema de paginação não está funcionando


Ir à solução Resolvido por washalbano,

Posts recomendados

Postado

Esse é o meu arquivo chamado index.php:

 

<?php  

$maxlinks = 4;
$paginaAtual = (isset($_GET['paginaAtual'])) ? (int)$_GET['paginaAtual'] : 1;
$maximo = 5;
$inicio = (($maximo * $paginaAtual) - $maximo);

$publicacoesUN = DBRead('publicacao', "ORDER BY id DESC LIMIT $inicio, $maximo");

$post = empty($_GET['post']) ? '' : $_GET['post'];
$pagina = empty($_GET['p']) ? 'home' : $_GET['p'];

if ($post != '' || ($post == '' && $pagina != '')) {

    switch ($pagina):
    case 'home':
        $titulo = '';
        $shareTitulo = '';

        $descricao = '';
        $shareDescricao = '';

        $shareImg = '';
        $keywords = '';

        $ogUrl = '';
        $urlCanonico = '';
        break;

    case 'ultimasnoticias':
        $titulo = '';
        $shareTitulo = '';

        $descricao = '';
        $shareDescricao = '';

        $shareImg = '';
        $keywords = '';

        $ogUrl = '';
        $urlCanonico = '';
        break;

    default:
        $titulo = 'Home';
        $pagina = 'home';
    endswitch;

}

?>


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>

<nav>

    <ul>
        <li>
          <a href="?p=home">Página Inicial</a>
        </li>

        <li>
          <a href="?p=ultimasnoticias">Últimas Notícias</a>
        </li>
    </ul>

</nav>

    <?php
        if (empty($post)) {
        require_once 'page_' . $pagina . '.php';
        } else {
            require_once 'posts/' . $post . '.php';
        }
    ?>

</body>
</html>

 

Esse é o meu arquivo chamado ultimasnoticias.php:

<div class="container my-3">

    <div class="row">

        <?php foreach ($publicacoesUN as $UN): ?>

           <div class="col-12 col-md-6 col-lg-3 mb-3 mb-md-3">

                <div class="card">

                    <div class="img-container">

                      <a href="index.php?post=<?php echo $UN['title']?>"><img src="<?php echo $UN['capa']?>" alt="<?php echo $UN['alt']?>" class="card-img-top" id="imgUNcover"></a>

                    </div>

                    <div class="card-body">

                      <a href="index.php?post=<?php echo $UN['title']?>" class="card-title cardTitleLink"><h1 class="cardTitleUN"><?php echo $UN['title']?></h1></a>

                      <p class="card-text text-muted"><?php echo $UN['text']?></p>

                      <a href="index.php?post=<?php echo $UN['title']?>" class="btn btn-outline-danger btn-sm">Continue Lendo</a>

                    </div>

                </div>

           </div>

       <?php endforeach; ?>

    </div>

</div>

<?php

  $pdo = new PDO('mysql:host=localhost;dbname=publicacoes', 'root', '');

  $seleciona_2 = $pdo->prepare("SELECT * FROM `bn_publicacao`");
  $seleciona_2->execute();
  $total = $seleciona_2->rowCount();
  $total_paginas = ceil($total/$maximo);

  if($total > $maximo){

  echo '<a href="?paginaAtual=1">First page</a>';
  for ($i = $paginaAtual - $maxlinks; $i <= $paginaAtual -1; $i++) { 

    if ($i >= 1) {
      echo '<a href="?paginaAtual='.$i.'">'.$i.'</a>';
    }
  }
  echo '<span>'.$paginaAtual.'</span>';
  for ($i= $paginaAtual +1; $i <= $paginaAtual + $maxlinks; $i++) { 
    if ($i <= $total_paginas) {
      echo '<a href="?paginaAtual='.$i.'">'.$i.'</a>';
    }
  }
  echo '<a href="?paginaAtual='.$total_paginas.'">Last page</a>';

  }

?>

Quando eu clico nos links da paginação, 1, 2, 3, first page, last page.. etc, o link me redireciona para a pagina principal, que no caso é a page_home.php.

Se eu colocar o script do arquivo ultimasnoticias.php dentro do <body> do arquivo index.php a paginação funciona perfeitamente. Ou seja, pra um site estático essa paginação iria funcionar, mas o meu site é server side e não está funcionando, e não consegui achar uma solução.

 

Alguém sabe como resolver?

 

 

  • Solução
Postado

Olá!
No trecho de script que cria a paginação,
assim: <a href="?paginaAtual=*">   // O asterisco significa qualquer coisa
Você precisa avisar que quer paginar a página ultimasnoticias
então tente assim:

<a href="?p=ultimasnoticias&paginaAtual=*">

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!