Ir para conteúdo

POWERED BY:

Arquivado

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

felipe_rezende

Classe para Paginação

Recommended Posts

Outra classe que fiz para facilitar a vida quando mexo com banco de dados. Primieiro mostro a implementação, depois a classe. Comentários são bem-vindos!!! enjoy it!

 

pgresult.php

<?php/** * Implementação da classe PgResults. *  * por Felipe Rezende * felipe_rezende@msn.com *  */// Inclui a classe e cria objetoinclude("class.PgResults.php");$pg = new PgResults;// Conecta com servidor e seleciona database.mysql_connect("localhost","root","root");mysql_select_db("meuflog");// Monta queries $result = mysql_query("SELECT * FROM meuflog_countries LIMIT ".$pg->primeiroRegistro().",".$pg->porPagina()."");$result2 = mysql_query("SELECT COUNT(*) FROM meuflog_countries");// Obtem numero total de resultados$total = mysql_fetch_array($result2);$total = $total[0];// Mostra menuecho $pg->verPorPagina()."<br>";// Mostra Resultadoswhile ($dados = mysql_fetch_array($result)) {	echo $dados[0]." - ".$dados[1]."<br>";}// Mostra Painel de Navegaçãoecho $pg->painelNavegacao($total);?>

classe PgResults

<?php/*** Classe de Paginacao** por Felipe Rezende* felipe_rezende@msn.com***//*** Impede que o arquivo da classe seja* acessado diretamente.*/$checkurl = $_SERVER["PHP_SELF"];if (eregi("class.PgResults.php", $checkurl)) {	die("Este arquivo não pode ser acessado diretamente.");}class PgResults{	// Atributos	var $porPagina = "10";	var $verPorPagina;	var $get;	/**	 * Retorna quantos resultados devem aparecer	 * em cada pagina	 *		 * @return int	 */	function porPagina(){		$this->get = $_GET["porPagina"];		if ($this->get == "" OR $this->get == 0){			return $this->porPagina;		} else {			return $this->get;		}	}		/**	 * Retorna o numero da pagina atual.	 *	 * @return int	 */	function pagina(){		$this->get = $_GET["pagina"];		if ($this->get == ""){			return (int)1;		} else {			return $this->get;		}	}		/**	 * Retorna o primeiro registro de acordo	 * com a pagina atual.	 *	 * @return int	 */	function primeiroRegistro(){		return	 ($this->pagina()*$this->porPagina()) - $this->porPagina();	}		/**	 * Retorna o numero total de paginas	 *	 * @param int $totalRegistros	 * @return int	 */	function totalPaginas($totalRegistros){		return ceil($totalRegistros/$this->porPagina());	}		/**	 * Retorna painel de navegacao	 *	 * @param int $totalRegistros	 * @return string	 */	function painelNavegacao($totalRegistros){		global $PHP_SELF;				if ($this->pagina() > 1) {			$prev = $this->pagina() - 1;			$prev_link = "<a href=\"$PHP_SELF?pagina=$prev&porPagina=".$this->porPagina()."\">Anterior</a>";		}		   if ($this->totalPaginas($totalRegistros) > $this->pagina()) {			$next = $this->pagina() + 1;			   $next_link = "<a href=\"$PHP_SELF?pagina=$next&porPagina=".$this->porPagina()."\">Próxima</a>";		}		for ($x=1; $x <= $this->totalPaginas($totalRegistros); $x++) {			if ($x == $this->pagina()) {				$painel .= "[ $x ] ";			  } else {				$painel .= " <a href=\"$PHP_SELF?pagina=$x&porPagina=".$this->porPagina()."\">[$x]</a> ";			  }		}		return "$prev_link  $painel  $next_link <br />";	}		/**	 * Retorna menu para selecao de quantos	 * resultados devem aparecer por pagina	 *	 * @return string	 */	function verPorPagina(){		global $PHP_SELF;				$this->verPorPagina = "[ ver por página <a href=\"$PHP_SELF?pagina=".$this->pagina()."&porPagina=10\">10</a> "						."<a href=\"$PHP_SELF?pagina=".$this->pagina()."&porPagina=25\">25</a> "						."<a href=\"$PHP_SELF?pagina=".$this->pagina()."&porPagina=50\">50</a> ]";		return $this->verPorPagina;							}}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você falou que comentarios sao bem-vindos entao vou dar o meu

 

entao eu acho que para esse tipo de serviço nao precisa de ser em oop

porque o que ta parecendo ai é que você criou umas funções e jogou dentro de class{} , pra isso nao ta orientado a objetos

 

nao me leve a mal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe,Sua paginação funciona beleza em localhost..mas quando mando para o site dá o seguinte erro "Parse error: syntax error, unexpected '(', expecting '}"..o que pode ser??Grato.

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.