Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
SilverioM

Como paginar usando php e postgres?

Recommended Posts

<?php
    
    /* Funciona mal porque so identifica a divisao das paginas pelo numero de imagens(Produtos) mas nao apresenta o resulado dividido em 9 produtos por pagina, apresenta todos eles em todas paginas. Alguem me ajuda? */

    
    include("conexao.php");


    if (!isset($_POST['pg'])) {
        $pagina = 1;
    } else {
        $pagina = $_POST['pg'];
    }


    //Consulta para pegar a quantidade total de registos
    $sql    = "SELECT * FROM img";
    $rs     = pg_query($sql);


    // Contando o numero de registos
    $qtd_registos    = pg_num_rows($rs);

 

    // Definir o numero de paginas por registo
    $npp    = 9;
    $qtd_total_pg    = ceil($qtd_registos/$npp);


    // Montando a SQL
    $pp     = (($pagina * $npp) - $npp);
    // $sql     = "SELECT * FROM img LIMIT ". $pp ." , " . $npp;
    $sql     = "SELECT * FROM img LIMIT $pp  OFFSET $npp";

    $rs     = pg_query($sql) or die("Paginacao Falhou" . pg_last_error());

 

    // Seguimento da pagina anterior e posterior
    $link_anterior = "";
    $link_posterior    = "";
    if ($pagina > 1) {
        $link_anterior    = "<a href='index.php?pg=". ($pagina - 1 ) . "'>[Antereior]</a>";
    }

    if ($pagina < $qtd_total_pg) {
        $link_posterior    = "<a href='index.php?pg=". ($pagina + 1 ) . "'>[Seguinte]</a>";
    }

 

    // Calculando o link anterior
    if (($pagina - 4) < 1) {
        $anterior     = 1;
    }else{
        $anterior     = $pagina - 4;
    }

 

    // Calculando o link posterior
    if (($pagina + 4) > $qtd_total_pg) {
        $posterior     = $qtd_total_pg;
    }else{
        $posterior     = $pagina + 4;
    }

    

    $link_paginacao    = "";

    for ($i=$anterior; $i <= $posterior; $i++) {

        $link_paginacao    .= "<a href='index.php?pg=". $i ."'>[". $i ."]</a>";

    }

    echo $link_anterior . "&nbsp;&nbsp;" . $link_paginacao . "&nbsp;&nbsp;" . $link_posterior;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  

×
×
  • Criar Novo...