Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ramon.Onix

[Resolvido] contagem na paginação

Recommended Posts

PessoAll...

Eu sou um novato em php, e tô com uma dúvida a 3 dias e não consigo resolver...

o cód abaixo funciona em outra páginamuito bem faz a contagem das páginas, mas fiz umas modificações e agora não quer fazer a contagem...

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-Type" content="text/html; charset=utf-8" />
        <link href="css/style_1.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/prototype.js"></script>
        <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
        <script type="text/javascript" src="js/lightbox.js"></script>
    </head>
    <body>
        <?php
        // Selecionar servidor
        include 'conndb.php';

        // Pegar a página atual por GET
        $p = $_GET["p"];
        // Pegar os campos pesquisados
        $codImg = $_GET["codImg"];
        $catImg = $_GET["catImg"];
        $descImg = $_GET["descImg"];

        // Verifica se a variável tá declarada, senão deixa na primeira página como padrão
        if(isset($p)) {
            $p = $p;
        } else {
            $p = 1;
        }
        // Defina aqui a quantidade máxima de registros por página.
        $qnt = 20;
        // O sistema calcula o início da seleção calculando:
        // (página atual * quantidade por página) - quantidade por página
        $inicio = ($p*$qnt) - $qnt;
        // Seleciona no banco de dados com o LIMIT indicado pelos números acima
        $sql_select = "SELECT * FROM tbimg WHERE catImg LIKE '%".$catImg."%' AND codImg LIKE '%".$codImg."%' AND descImg LIKE '%".$descImg."%' ORDER BY codImg LIMIT $inicio, $qnt";
        // Executa o Query
        $sql_query = mysql_query($sql_select);

        // Cria um while para pegar as informações do BD
        echo "<div id='menu'>";
        echo "<ul>";
        while($array = mysql_fetch_array($sql_query)) {
        // Variáveis para capturar os campos no banco de dados
            $imgImg = $array["imgImg"];
            $codImg = $array["codImg"];
            $descImg = $array["descImg"];
            $catImg = $array["catImg"];

        // Exibe os dados que estão no BD e pula uma linha
            echo "<ul>";
            echo "<li><a rel='lightbox[prod]' href='../cadastra/fotos/".$imgImg."'><img src='../cadastra/fotos/".$imgImg."' alt='Foto de exibição' /></a><br />";
            echo "<b>Código:</b> <a href='edita.php?codImg=".$codImg."'/>".$codImg."</a><br />";
            echo "<b>Descrição:</b> " . $descImg."<br />";
            echo "<b>Categoria:</b> " . $catImg."</li><br /><br />";
            echo "</ul>";
        }
        echo "</ul>";
        echo "</div>";
        echo "<div id='pagin1'>";
// Faz uma nova seleção no banco de dados, desta vez sem LIMIT,
// para pegarmos o número total de registros
        $sql_select_all = "SELECT * FROM tbimg WHERE catImg LIKE '%".$catImg."%' AND codImg LIKE '%".$codImg."%' AND descImg LIKE '%".$descImg."%' ORDER BY codImg";
// Executa o query da seleção acimas
        $sql_query_all = mysql_query($sql_select_all);
// Gera uma variável com o número total de registros no banco de dados
        $total_registros = mysql_num_rows($sql_query_all);
// Gera outra variável, desta vez com o número de páginas que será precisa.
// O comando ceil() arredonda 'para cima' o valor
        $pags = ceil($total_registros/$qnt);
// Número máximos de botões de paginação
        $max_links = 3;
// Exibe o primeiro link 'primeira página', que não entra na contagem acima(3)
        echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=1' target='_self'>[<</a> ";
// Cria um for() para exibir os 3 links antes da página atual
        for($i = $p-$max_links; $i <= $p-1; $i++) {

// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
            if($i <=0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
            } else {
                echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$i."' target='_self'>".$i."</a> ";
            }
        }
// Exibe a página atual, sem link, apenas o número
        echo "<li id=botao>".$p." ";
// Cria outro for(), desta vez para exibir 3 links após a página atual
        for($i = $p+1; $i <= $p+$max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
            if($i > $pags) {
//faz nada
            }
// Se tiver tudo Ok gera os links.
            else {
                echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$i."' target='_self'>".$i."</a> ";
            }

        }
// Exibe o link "última página"
        echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$pags."' target='_self'>>]</a> </li>      ";
        echo "<a href='localiza.php'>Voltar</a>";
        echo "</div>";
        ?>
    </body>
</html>

essa página mostra uma consulta no banco de dados mysql, a pesquisa funciona normal, só a paginação que não funfa, não sei pq...

 

Será que alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi... kkkkkkk....

Parece mágica toda vez que posto uma dúvida consigo resolver...

Bom se alguém precisar, a solução estava na cara... Tinha que mudar a consulta da contagem para $_Get['']

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-Type" content="text/html; charset=utf-8" />
        <link href="css/style_1.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/prototype.js"></script>
        <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
        <script type="text/javascript" src="js/lightbox.js"></script>
    </head>
    <body>
        <?php
        // Selecionar servidor
        include 'conndb.php';

        // Pegar a página atual por GET
        $p = $_GET["p"];
        // Pegar os campos pesquisados
        $codImg = $_GET["codImg"];
        $catImg = $_GET["catImg"];
        $descImg = $_GET["descImg"];

        // Verifica se a variável tá declarada, senão deixa na primeira página como padrão
        if(isset($p)) {
            $p = $p;
        } else {
            $p = 1;
        }
        // Defina aqui a quantidade máxima de registros por página.
        $qnt = 20;
        // O sistema calcula o início da seleção calculando:
        // (página atual * quantidade por página) - quantidade por página
        $inicio = ($p*$qnt) - $qnt;
        // Seleciona no banco de dados com o LIMIT indicado pelos números acima
        $sql_select = "SELECT * FROM tbimg WHERE catImg LIKE '%".$catImg."%' AND codImg LIKE '%".$codImg."%' AND descImg LIKE '%".$descImg."%' ORDER BY codImg LIMIT $inicio, $qnt";
        // Executa o Query
        $sql_query = mysql_query($sql_select);

        // Cria um while para pegar as informações do BD
        echo "<div id='menu'>";
        echo "<ul>";
        while($array = mysql_fetch_array($sql_query)) {
        // Variáveis para capturar os campos no banco de dados
            $imgImg = $array["imgImg"];
            $codImg = $array["codImg"];
            $descImg = $array["descImg"];
            $catImg = $array["catImg"];

        // Exibe os dados que estão no BD e pula uma linha
            echo "<ul>";
            echo "<li><a rel='lightbox[prod]' href='../cadastra/fotos/".$imgImg."'><img src='../cadastra/fotos/".$imgImg."' alt='Foto de exibição' /></a><br />";
            echo "<b>Código:</b> <a href='edita.php?codImg=".$codImg."'/>".$codImg."</a><br />";
            echo "<b>Descrição:</b> " . $descImg."<br />";
            echo "<b>Categoria:</b> " . $catImg."</li><br /><br />";
            echo "</ul>";
        }
        echo "</ul>";
        echo "</div>";
        echo "<div id='pagin1'>";
// Faz uma nova seleção no banco de dados, desta vez sem LIMIT,
// para pegarmos o número total de registros
        $sql_select_all = "SELECT * FROM tbimg WHERE catImg LIKE '%".$_GET['catImg']."%' AND codImg LIKE '%".$_GET['codImg']."%' AND descImg LIKE '%".$_GET['descImg']."%' ORDER BY codImg";
// Executa o query da seleção acimas
        $sql_query_all = mysql_query($sql_select_all);
// Gera uma variável com o número total de registros no banco de dados
        $total_registros = mysql_num_rows($sql_query_all);
// Gera outra variável, desta vez com o número de páginas que será precisa.
// O comando ceil() arredonda 'para cima' o valor
        $pags = ceil($total_registros/$qnt);
// Número máximos de botões de paginação
        $max_links = 3;
// Exibe o primeiro link 'primeira página', que não entra na contagem acima(3)
        echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=1' target='_self'>[<</a> ";
// Cria um for() para exibir os 3 links antes da página atual
        for($i = $p-$max_links; $i <= $p-1; $i++) {

// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
            if($i <=0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
            } else {
                echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$i."' target='_self'>".$i."</a> ";
            }
        }
// Exibe a página atual, sem link, apenas o número
        echo "<li id=botao>".$p." ";
// Cria outro for(), desta vez para exibir 3 links após a página atual
        for($i = $p+1; $i <= $p+$max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
            if($i > $pags) {
//faz nada
            }
// Se tiver tudo Ok gera os links.
            else {
                echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$i."' target='_self'>".$i."</a> ";
            }

        }
// Exibe o link "última página"
        echo "<li id=botao><a href='?codImg=".$_GET['codImg']."&catImg=".$_GET['catImg']."&descImg=".$_GET['descImg']."&p=".$pags."' target='_self'>>]</a> </li>      ";
        echo "<a href='localiza.php'>Voltar</a>";
        echo "</div>";
        ?>
    </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.