Ir ao conteúdo
  • Cadastre-se

PHP - Paginação de pagina


Ir à solução Resolvido por DiF,

Posts recomendados

Olá pessoal,

 

Preciso da ajuda de vocês para conseguir identificar o que está acontecendo, vou explicar a situação, eu peguei um código pronto de paginação na Internet , e ele funcionou da forma como eu precisava, porém algo está me incomodando, quando eu mudo de página a url do navegador muda, porém ele adiciona um "%27" no final, e eu não sei de onde está saindo este "%27", eu já analisei o codigo umas 20x e nada de encontrar onde está fazendo mostrar essa %27 na url,e o engraçado é que na pagina 1 ( pagina principal) não aparece o "%27" só nas outras, o codigo está todo comentado ( o que eu peguei ) mas mesmo assim não consigo achar a parte onde escreve este %27 na url, meu amigo analisou também, e nada.

 

 

Somos iniciantes em programação PHP, então desculpe se for muito obvio o erro, a gente já revirou este código varias e varias vezes.

      <?php         date_default_timezone_set("America/Sao_Paulo");    //inclusão da conexão com banco de dados    require 'connect.php';    //A quantidade de valor a ser exibida    $quantidade = 3;    //a pagina atual    $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;    //Calcula a pagina de qual valor será exibido    $inicio     = ($quantidade * $pagina) - $quantidade;    //Monta o SQL com LIMIT para exibição dos dados       if(isset($_POST['txtEnviar'])){              $PalavraChave = $_POST['txtPesquisa'];              $Data = $_POST['porData'];              $Estado = $_POST['pesquisaEstado'];              $Cidade = $_POST['pesquisaCidade'];              $CNPJ = $_POST['comCPNJ'];              $MEI = $_POST['comMEI'];              $MEC = $_POST['comMEC'];                            $consulta2 = mysqli_query($connect,"SELECT * FROM tb_publicacao WHERE nm_publicacao LIKE '%$PalavraChave%' OR ds_publicacao LIKE '%$PalavraChave%' ORDER BY dt_publicacao DESC LIMIT $inicio, $quantidade")or die (mysql_error());              //Percorre os campos da tabela              while($ResultadoPesquisa = mysqli_fetch_object($consulta2)){                $caminho2 = 'Perfil/' . $ResultadoPesquisa->img_publicacao;               $data = $ResultadoPesquisa->dt_publicacao;                echo"<div class='postagem'>";              echo"<div>";            echo"<h1>$ResultadoPesquisa->nm_publicacao</h1>";            echo"<img src='$caminho2' width='100' height='100'/>";            echo"$ResultadoPesquisa->nm_autor";                          echo date('d/m/Y H:i:s',strtotime($data));                         echo "<br>";                  echo"$ResultadoPesquisa->ds_publicacao <br/>";            echo"</div>";                                  echo"</div>";                   echo"<br>";                }              $consulta2 = "";             }              else {      $consulta = mysqli_query($connect,"SELECT * FROM tb_publicacao ORDER BY dt_publicacao DESC LIMIT $inicio, $quantidade") or die (mysql_error());          //Percorre os campos da tabela            while($dado = mysqli_fetch_object($consulta)){               $caminho = 'Perfil/' . $dado->img_publicacao;                 $data2 = $dado->dt_publicacao;                                      echo"<div class='postagem'>";           echo"<div>";         echo"<h1>$dado->nm_publicacao</h1>";         echo"<img src='$caminho' width='100' height='100'/>";         echo"$dado->nm_autor    ";                             echo date('d/m/Y H:i:s',strtotime($data2));              echo "<br>";                  echo"$dado->ds_publicacao <br/>";         echo"</div>";       echo"</div>";               echo"<br>";                        }                $consulta = "";             }       /**   * SEGUNDA PARTE DA PAGINAÇÃO   */  //SQL para saber o total  $qrTotal    = mysqli_query($connect,"SELECT cd_publicacao from tb_publicacao");  //Total de Registro na tabela  $numTotal   = mysqli_num_rows($qrTotal);  //O calculo do Total de página ser exibido  $totalPagina= ceil($numTotal/$quantidade);   /**    * Defini o valor máximo a ser exibida na página tanto para direita quando para esquerda    */   $exibir = 3;   /**    * Aqui montará o link que voltará uma pagina    * Caso o valor seja zero, por padrão ficará o valor 1    */   $anterior  = (($pagina - 1) == 0) ? 1 : $pagina - 1;   /**    * Aqui montará o link que ir para proxima pagina    * Caso pagina +1 for maior ou igual ao total, ele terá o valor do total    * caso contrario, ele pegar o valor da página + 1    */   $posterior = (($pagina+1) >= $totalPagina) ? $totalPagina : $pagina+1;   /**    * Agora monta o Link paar Primeira Página    * Depois O link para voltar uma página    */  /**    * Agora monta o Link para Próxima Página    * Depois O link para Última Página    */    ?>    <div id="navegacao">        <?php        echo '<a href="?pagina=1">primeira</a> | ';        echo "<a href=pagina_de_publicacao.php?pagina=$anterior\'>anterior</a> | ";    ?>        <?php         /**    * O loop para exibir os valores à esquerda    */   for($i = $pagina-$exibir; $i <= $pagina-1; $i++){       if($i > 0)        echo '<a href="?pagina='.$i.'"> '.$i.' </a>';  }  echo '<a href="?pagina='.$pagina.'"><strong>'.$pagina.'</strong></a>';  for($i = $pagina+1; $i < $pagina+$exibir; $i++){       if($i <= $totalPagina)        echo '<a href="?pagina='.$i.'"> '.$i.' </a>';  }   /**    * Depois o link da página atual    */   /**    * O loop para exibir os valores à direita    */    ?>    <?php echo " | <a href=pagina_de_publicacao.php?pagina=$posterior'>próxima</a> | ";    echo "  <a href=pagina_de_publicacao.php?pagina=$totalPagina'>última</a>";    ?>
Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

@Orixinals

 

Provavelmente não é problema do código. pode ser algum caractere.. ou até mesmo espaçamento...

 

poe exemplo se ver numa URL o valor "%20"  quer dizer que tinha espaço entre palavras.. exemplo:

 

site.com.br/meus%20servicos.html

 

significa que nome da página originalmente era " meus servicos.html"

 

Por isso devemos sempre tirar acentuações, espaçamentos e etc das urls.. ou seu código por alguma razão está gerando eles assim. 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá @dif

 

Realmente eu não sabia a respeito disso, agradeço por estar sempre me ajudando quando pode, já aprendi muita coisa com você !!

 

Procurei algo relacionado com caracteres especiais, porém não encontrei nenhum no código , mas não importa muito isso, o importante é estar funcionando.

 

Abraços !!

 

Att,

Orixinals. 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...