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

Ajuda Paginaçao


Thepeter

Pergunta

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

<?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&oacute;xima &raquo;</a>';
    }
    
        echo $paginacao;
        
    echo '</div>';
?>

Editado por Thepeter
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

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

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