+1

Paginação de resultados para qualquer banco de dados

criado por Carlos Eduardo Gomes Monteiro em 19/02/2011 3:09pm
E ae galera
Eu sei que tem muitos código aí de paginação e tal.
Mas este aqui vocês podem usar para qualque banco e também ele está um pouco mais completo!

Vocês podem baixar o arquivo zipado que contem o código css, algumas imagens e a classe de paginação.

Agora abaixo vou mostrar um exemplo de como utilizar a classe.

Eu utilizo PDO para fazer conexões com banco de dados, mas ao utilizar esta classe, você não vai precisar de PDO. Se quiser você poderá utilizar as funções do mysql tradicionais mesmo.
Porém, você vai ter que criar uma pequena classe para poder trabalhar com esta classe de paginação.

Note que o construtor exige que seja passado um objeto da classe DataBase.
public function __construct(DataBase $db, $listLimit = 0, $pagenationLimit = 0){

Por isso vamos criar-lo agora.
class DataBase{

        private $conn;

        //Construtor da classe DataBase :: DataBase()
	public function __construct($dbServer, $dbLog, $dbPass, $dbName){
		$conn = mysql_connect($dbServer, $dbLog, $dbPass);
		mysql_select_db($dbName, $conn);
		$this->conn = $conn;
	}

	//Retorna a quantidade de linhas selecionadas por uma query
	//Parametros: Resultado do método query()
	//mixed numRows ([int])
	public function numRows($result=''){
		return mysql_num_rows($result);
	}

	//Executa uma query
	//Parametros: (Query a ser executada)
	//mixed query (string $query )
	public function query($query){
		return mysql_query($query, $this->conn);
	}

}

Com apenas isto, você já pode utilizar a classe.

Dica
O CSS que se encontra dentro do arquivo zipado, deve estar incorporado ao CSS da sua página. Por isso, copie e cole no CSS da sua página.

Supondo que você já chamou o CSS no HTML, que você já instanciou o objeto da classe DataBase. Agora vou te mostrar como usar a classe Pagenation.

include('Pagenation.class.php');
$page = new Pagenation($dataBase, 20, 10);

$sql = 'SELECT * FROM tabela';

if($result = $page->listing('list', $sql)){
			
    $pointer = $page->getFilteredPointer();

    while($row = mysql_fetch_array($pointer)){
        echo $row['nome'] . '<br >';
    }	
    $lines .= $page->getPagenation();		  
    echo $lines;

} else if($result === false){
    echo 'Falha no procedimento';
} else {
    echo 'Nenhum resultado encontrado para esta busca!';
}

Exemplificando de maneira simples.
É assim que você pode utilizar esta classe.
Com algumas poucas linhas, você pode fazer uma paginação de resultados.

Algumas dicas.
No método construtor da classe, você passa três parametros
Veja bem.
O primeiro parametro é o objeto da classe DataBase.
O segundo paramentro é a quantidade de registros que vão aparecer por página.
E o terceiro é a quantidade de números que vão aparecer para o usuário navegar entre as páginas...

Exemplo
Se você passar o valor 5 no terceiro parametro.
Então o resultado vai ser assim...

<< < 1 2 3 4 5 > >>

Vamos supor que esta busca deu 20 páginas
E o usuário clicou para ir para a página 2
Então vai ficar assim agora

<< < 2 3 4 5 6 > >>

Se eu não consegui explicar direito
Utilize a classe e faça bastante experimentos que vocês entenderão melhor o que é cada coisa alí
Espero que vocês gostem

Abraço!!!
Data Autor Changelog Download
19/02/2011 3:09pm Carlos Eduardo Gomes Monteiro - Versão 1.0

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)