Gestire la paginazione dei records di MySQL con una classe PHP
Pagina 2 di 2
Ora vediamo come sia possibile richiamare e utilizzare la nostra classe:
<?php
//includiamo il file della classe
@require("paginazione.php");
//connettiamoci a MySQL e selezioniamo il database
class MySQL
{
function MySQL()
{
$this->host_name = "localhost";
$this->user_name = "username";
$this->password = "password";
$this->data_name = "dbseodir";
$this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error());
@mysql_select_db($this->data_name) or die (mysq_error());
}
}
$data = new MySQL();
// istanziamo la classe per l'impaginazione
$p = new Paging;
// numero massimo di risultati per pagina
$max = 10;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM sitezzz") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());
// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);
// limitiamo la SELECT al numero di risultati per pagina
$query = @mysql_query("SELECT * FROM sitezzz LIMIT ".$inizio.",".$max) or die (mysql_error());
//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";
//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
La prima parte del codice è dedicata all'introduzione di una classe molte semplice che permette di effettuare la connessione al DBMS e la selezione del database; se lo si desidera, anch'essa potrà essere inclusa in un file esterno.
In secondo luogo abbiamo istanziato la nostra classe per l'impaginazione, Paging, quindi abbiamo stabilito il numero massimo di risultati da visualizzare per pagina (nel nostro caso "10"); fatto questo, abbiamo richiamato la funzione paginaIniziale() a cui abbiamo passato come parametro la variabile contenente il valore relativo al limite per pagina, questa funzione ci permetterà di raccolgiere il valore passato per GET (via querystring) e di sapere sempre da quale pagina cominciare il conteggio.
E' ora il turno della funzione contaPagine(), essa riceve come parametri il numero totale dei records da impaginare e il limite di records per pagina; grazie ad essa sarà possibile suddividere i records per il numero di pagine necessario.
Segue la funzione listaPagine() che raccoglierà il dato inviato per stringa tramite GET e mostrerà la pagina corrente evidenziandola e i links alle pagine precedenti e successive.
Abbiamo infine la funzione precedenteSuccessiva() che raccoglie gli stessi parametri di listaPagine(), non mostra però una disposizione numerica ma semplicemente i links per spostarsi avanti o indietro rispetto alla pagina corrente.







