Jump to content
Sign in to follow this  
Sir Pereira

[RESOLVIDO] Biblioteca de Paginação

Recommended Posts

Sir Pereira

Boas,

precisava de implementar uma paginação no meu projecto, no entanto o mesmo vai ter várias páginas onde esta tem que ser implementada, desde mensagens, a utilizadores e categorias.

E ainda não consegui perceber muito bem como fazer uma, como tal gostaria de vos questionar se existe alguma biblioteca que permita só ajustar as definições? Não sei mesmo.

Abraço e obrigado ;)

Share this post


Link to post
Share on other sites
scorch

Não precisas de biblioteca nenhuma. É extremamente simples de se fazer e só tens de usar o comando LIMIT do SQL, no fim da query. ;)


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch

Saber automaticamente como? Isso tem de estar definido em algum sitio, por exemplo, num ficheiro de configuração.

Para passar, passas por QueryString, tipo:

http://www.site.com/index.php?page=2

$max_itens = 10;
$start = ((integer)$_GET["page"] - 1) * $max_itens;
$query = mysql_query("SELECT * FROM tabela LIMIT ".$start.", ".$max_itens."");

Isto deverá resultar em:

SELECT * FROM tabela LIMIT 10, 10

Ou seja, ele, a partir do décimo registo, obtém os dez seguintes. Se a página fosse a terceira, começava a contar apenas a partir do vigésimo. ;)


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
kareka

Acho que percebi o teu problema , aqui vai uma ajuda:

		$string = "SELECT * FROM tabela";
		$query = mysql_query($string);
		$linhas = mysql_num_rows($query);

		if(!isset($_GET['pagenum'])) $pagenum = 1;
		else $pagenum = $_GET['pagenum'];

		$page_rows = 8; #NUMERO DE REGISTOS POR PÁGINA

		$last = ceil($linhas/$page_rows); 

		if ($pagenum < 1) { 
			$pagenum = 1; 
		} 
		elseif ($pagenum > $last) { 
			$pagenum = $last; 
		} 

		$max = " LIMIT " . ($pagenum - 1) * $page_rows . ", " . $page_rows;	

		$r = $string . $max; 
		$query = mysql_query($r);

Depois , o código das páginas a colocar em baixo:

                    <?php
                        if ($pagenum == 1) {
                        } 
                        else {
                            echo "<a href='{$_SERVER['PHP_SELF']}?a=8&pag=5&pagenum=1'> Primeira</a> ";
                            echo " ";
                            $previous = $pagenum-1;
                            echo "<a href='{$_SERVER['PHP_SELF']}?a=8&pag=5&pagenum=$previous'> Anterior</a> ";
                        }
                        
                        echo " Página $pagenum de $last ";
                        
                        if ($pagenum == $last) {
                        } else {
                            $next = $pagenum+1;
                            echo " <a href='{$_SERVER['PHP_SELF']}?a=8&pag=5&pagenum=$next'>Próxima</a>";
                            echo " ";
                            echo " <a href='{$_SERVER['PHP_SELF']}?a=8&pag=5&pagenum=$last'> Última</a>";
                        }
                    ?>	


<?php include("assinatura.txt"); ?>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.