1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Paginação em php

Discussão em 'Web Development' iniciada por moriva, 13 de Junho de 2008. (Respostas: 3; Visualizações: 1367)

  1. moriva

    moriva Power Member

    Tenho um ficheiro que devia fazer a paginação dos registos numa tabela mas ao clicar nos numeros que mudariam de página não acontece nada nem dá erro.

    Podem dar uma olhada neste código e dizer-me se alguma coisa ta mal.

    Código:
    <html>
        <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <link type="text/css" href="geral.css" rel="stylesheet">
            <link rel="stylesheet" href="tabela.css" type="text/css" media="screen"/>        
        </head>
        <body>
            <?php
                require_once("connect.php");
                $query2 = 'select * from andebol';
                $result = mysql_query ($query2); 
            ?>
                <?php
    //######### INICIO Paginação
        $numreg = 10; // Quantos registros por página vai ser mostrado
        if (!isset($pg)) {
            $pg = 0;
        }
        $inicial = $pg * $numreg;
        
    //######### FIM dados Paginação
        
        // Faz o Select pegando o registro inicial até a quantidade de registros para página
        $sql = mysql_query("SELECT * FROM andebol LIMIT $inicial, $numreg");
    
        // Serve para contar quantos registros você tem na seua tabela para fazer a paginação
        $sql_conta = mysql_query("SELECT * FROM andebol");
        
        $quantreg = mysql_num_rows($sql_conta); // Quantidade de registros pra paginação
        
        include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>
        
        echo "<br><br>"; // Vai servir só para dar uma linha de espaço entre a paginação e o conteúdo
        
        while ($aux = mysql_fetch_array($sql)) {
        }
    ?>
    </table>
    
                <table class="tabelaCentrada" id="tabela">
                    <tr>
                        <td class="tabelarTitulos">Codigo de Jogo</td>
                        <td class="tabelarTitulos">Tipo</td>
                        <td class="tabelarTitulos">Data</td>
                        <td class="tabelarTitulos">Hora</td>
                        <td class="tabelarTitulos">Local</td>
                        <td class="tabelarTitulos">Nome Equipa1</td>
                        <td class="tabelarTitulos">Nome Equipa2</td>
                        <td class="tabelarTitulos">1ºPeriodo Equipa1</td>
                        <td class="tabelarTitulos">1ºPeriodo Equipa2</td>
                        <td class="tabelarTitulos">2ºPeriodo Equipa1</td>
                        <td class="tabelarTitulos">2ºPeriodo Equipa2</td>
                        <td class="tabelarTitulos">Final Equipa1</td>
                        <td class="tabelarTitulos">Final Equipa2</td>
                        <td class="tabelarTitulos">Remoção</td>
                        <td class="tabelarTitulos">Edição</td>
                    </tr>
                <?php while ($row = mysql_fetch_array ($result)){ ?>
                    <tr>
                        <td class="tabelarCampo"><?php echo $row['Cod_Jogo'] ?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Tipo']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Data']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Hora']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Local']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Equipa1']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Equipa2']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Periodo1Equipa1']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Periodo1Equipa2']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Periodo2Equipa1']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['Periodo2Equipa2']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['FinalEquipa1']);?></td>
                        <td class="tabelarCampo"><?php echo utf8_encode($row['FinalEquipa2']);?></td>
                        <td class="tabelarCampo"><a href="remove_andebol.php?Cod_Jogo=<? echo $row['Cod_Jogo'];?>">Remover</td>
                        <td class="tabelarCampo"><a href="editar_andebol.php?Cod_Jogo=<? echo $row['Cod_Jogo'];?>">Editar</td>
                    </tr>
                <?php
                }
                ?>
                </table>
            </body>
    </html>
    
    :rolleyes::rolleyes::rolleyes::rolleyes:
     
  2. hostmake

    hostmake Power Member

    E devia?

    Isso vai buscar sempre 0,10, não estás a alterar o valor da variável $pg
     
  3. moriva

    moriva Power Member

    Nao sei se fiz bem mas inicializei a variavel $pg com o numero de registos que queria que mostrasse de cada vez.

    Mas nao deu nada de novo.Têm alguma sugestão?

    Aqui vai o ficheiro que monta a paginação:

    Código:
    <style type="text/css">
    <!--
    .pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}
    a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}
    a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}
    -->
    </style>
    <?php
        $quant_pg = ceil($quantreg/$numreg);
        $quant_pg++;
        
        // Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
        if ( $pg > 0) {
            echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."class=pg><b>&laquo; anterior</b></a>";
        } else {
            echo "<font color=#CCCCCC>&laquo; anterior</font>";
        }
        
        // Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
        for($i_pg=1;$i_pg<$quant_pg;$i_pg++) {
            // Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
            if ($pg == ($i_pg-1)) {
                echo "&nbsp;<span class=pgoff>[$i_pg]</span>&nbsp;";
            } else {
                $i_pg2 = $i_pg-1;
                echo "&nbsp;<a href=".$_SERVER['PHP_SELF']."?pg=$i_pg2 class=pg><b>$i_pg</b></a>&nbsp;";
            }
        }
        
        // Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
        if (($pg+2) < $quant_pg) {
            echo "<a href=".$_SERVER['PHP_SELF']."?pg=".($pg+1)." class=pg><b>próximo &raquo;</b></a>";
        } else {
            echo "<font color=#CCCCCC>próximo &raquo;</font>";
        }
    ?>
     
    Última edição pelo moderador: 16 de Junho de 2008
  4. hostmake

    hostmake Power Member

    Confusão, aqui vai a base de uma boa paginação.

    PHP:
    //Buscar o n da pagina
    $pag $_GET['pag'];
    if (!isset(
    $pag))
       
    $pag 1;

    //N de resultados
    $resultados 10;

    //Tens que saber isto para criares os links
    $resultados_query MYSQL_QUERY("SELECT * FROM users");
    $resultados_total msyql_num_rows($resultados_query);

    //Isto e a pesquisa actual da pagina
    $resultados_query MYSQL_QUERY("SELECT * FROM users LIMIT ($pag-1)*$resultados$resultados");

    Para depois mostrares os links em baixo:

    PHP:
    $resultados_total round($resultados_total $resultados);
     
    Última edição: 13 de Junho de 2008

Partilhar esta Página