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

Problema com Paginação


hypinotic

Pergunta

Boa tarde Galera,

Faz umas 2 horas que estou tentando mexer com essa paginação e não consegui o resultado esperado.

Resolvi apelar pra quem entende do assunto ^^

Bom, meu objetivo é que a paginação exiba sempre 5 registros.

Ex:

[1] 2  3  4  5
 1 [2] 3  4  5
 1  2 [3] 4  5
 2  3 [4] 5  6
 3  4 [5] 6  7
 3  4  5 [6] 7
 3  4  5  6 [7]
alguém poderia me ajudar com esse código? Abaixo está o pouco que consegui fazer (ele não exibe os 5 primeiros, nem os 5 últimos registros) Se alguém tiver um código semelhante a esse, posta ai que quero tentar entender como funciona. Valeo galera. Abraços
$QtdeTotalPaginas = 11;
$pagAtual = $_GET['Pagina'];
$TotalRegistros = 5;
$TotalCadaLados    = ceil($TotalRegistros/2)-1;

$Inicio = ($pagAtual <= $TotalCadaLados) ? 1 : $pagAtual-$TotalCadaLados;
$Fim     = ($pagAtual+$TotalCadaLados < $QtdeTotalPaginas) ? $pagAtual+$TotalCadaLados : $QtdeTotalPaginas;
        
for($x = $Inicio; $x <= $Fim; $x++)
{
    if($x == $pagAtual) {
        echo "<strong>[".$x."]&nbsp;</strong> ";
    } else {
        echo "[".$x."]&nbsp; ";
    }
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Cara eu não entendi muito bem a dúvida mas creio que esse código ajude

Crie 1 tabela com nome recados e com 1 campo chamado recados e insira alguns recados para ver

ele vai exibir os 5 primeiros e depois ele automaticamente cria outras paginas dependendo de quantos recados tiver.

<?php
// Conectar ao banco de dados
$conectar = mysql_connect("localhost","root","vertrigo");
$selecionar_db = mysql_select_db("siteindex");
//

$get = $_GET["pagina"];

$query = mysql_query("select * from recados order by id desc");
$linhas = mysql_num_rows($query);

$x = ($linhas%5);
if($x==0)
{$npaginas = ($linhas/5);}
else
{$npaginas = ((($linhas-$x)/5)+1);}



if($get)
{
$i = 0;
$y = ($get*5);
$z = (($get-1)*5); // 3-1*5 = 10
$u = 1;
    while($row = mysql_fetch_assoc($query))
    {
        $i++;
        if($i<=$z) continue;
        $recado = $row["recado"];
        echo $recado."<br />";
        //
        if(($i%$y)==0)
        {
            echo "Pagina ";
            while($u<$npaginas)
            {
                if($u==$get)
                {
                    echo " ".$u;
                }else{
                echo " <a href=\"?pagina=".$u."\">".$u."</a>";
                }
                $u++;
            }
            echo " <a href=\"?pagina=".$npaginas."\">".$npaginas."</a>";
            break;
        }
    }if($get==$npaginas)
        {
            echo "yeah";
        }
}
else
{
    // Página normal
$i = 0;
$y = 2;
    while($row = mysql_fetch_assoc($query))
    {
        
        $recado = $row["recado"];
        echo $recado."<br />";
        $i++;
        if(($i%5)==0)
        {
            echo "Pagina 1 ";
                while($y<$npaginas)
                {
                    echo "<a href=\"?pagina=".$y."\">".$y."</a> ";
                    $y++;
                }
                echo "<a href=\"?pagina=".$npaginas."\">".$npaginas."</a>";
                break;
        }
    }
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Isso resolve o problema:

<?php
$QtdeTotalPaginas = 11;
$pagAtual = $_GET['Pagina'];
$TotalRegistros = 5;
$TotalCadaLados    = ceil($TotalRegistros/2)-1;

$Inicio = ($pagAtual <= $TotalCadaLados) ? 1 : $pagAtual-$TotalCadaLados;
$Fim     = ($pagAtual+$TotalCadaLados < $QtdeTotalPaginas) ? $pagAtual+$TotalCadaLados : $QtdeTotalPaginas;

if($Inicio < 2 AND $QtdeTotalPaginas == 4) $Fim = 4;        
if($Inicio < 2 AND $QtdeTotalPaginas > 4) $Fim = 5;        

if($QtdeTotalPaginas-$Fim < 2 AND $QtdeTotalPaginas == 4) $Inicio = 1;        
if($QtdeTotalPaginas-$Fim < 2 AND $QtdeTotalPaginas > 4) $Inicio = $Fim-4;        

for($x = $Inicio; $x <= $Fim; $x++)
{
    if($x == $pagAtual) {
        echo "<strong>[".$x."]&nbsp;</strong> ";
    } else {
        echo "[".$x."]&nbsp; ";
    }
}
?>

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...