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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
Entre para seguir isso  

×
×
  • Criar Novo...