Codice PHP:
<?php
//la classe per il paging
class Paging {
    private 
$totPag//Totale Pagine nella tabella
    
private $pagCorr//Pagina corrente
    
private $totRighe//Totale righe nella tabella
    
private $righePerPagina//Numero di righe per pagina da ottenere

    //Facilita l'accesso all'array dell'intervallo
    
const kIntervalloInizio='inizio';
    const 
kIntervalloLunghezza='lunghezza';

    
// Il costruttore chiede quale sia la pagina corrente, il totale delle
    // righe in tabella e quante righe per pagina interessano
    
public function __construct($pagCorr,$totRighe,$righePerPagina) {
        
$this->pagCorr=$pagCorr;
        
$this->totRighe=$totRighe;
        
$this->righePerPagina=$righePerPagina;
        
$this->totPag=$this->contaPagine($totRighe$righePerPagina);
    }

    
// Consente di modificare la pagina corrente con un'altra dopo
    // l'esecuzione del construct
    
public function vaiAPagina($pagina){
        if(
$pagina==self::kUltimaPagina)
            
$this->pagCorr=$this->totPag;
        elseif(
is_numeric($pagina) and $pagina>and $pagina<$this->totPag)
            
$this->pagCorr=$pagina;
        else
            
$this->pagCorr=1;
    }

    
//Indica in quante pagine viene divisa la tabella
    
public function contaPagine($totRighe$righePerPagina) {
        return 
ceil($totRighe $righePerPagina);
    }

    
//Restituisce un array indicante la posizione del primo record e quante
    //righe occorre scorrere
    
public function dammiIntervallo() {
        return array(
            
self::kIntervalloInizio => ($this->pagCorr-1) * $this->righePerPagina,
            
self::kIntervalloLunghezza => $this->righePerPagina
        
);
    }

    
//Ritorna il numero per la prossima pagina
    
public function prossimaPagina(){
        if(
$this->totPag==0)
                return 
1;
        return (
$this->pagCorr>=$this->totPag)?$this->totPag:$this->pagCorr+1;
    }

    
//Ritorna il numero per la pagina precedente
    
public function precedentePagina(){
        return (
$this->pagCorr<=1)?1:$this->pagCorr-1;
    }

}

//PREPARA L'OGGETTO PAGING E LO RITORNA
function CostruisciOggettoPaging($sql) {
    if (!isset(
$_GET['p']))
        
$pagCorr 1;
    else
        
$pagCorr=$_GET['p'];
    
$res mysql_query($sql) or die('Err3');
    
$totRighe mysql_num_rows($res);
    
mysql_free_result($res);
    
$righePerPagina 10;
    return new 
Paging($pagCorr$totRighe$righePerPagina);
}
 
//creazione della tabella
function CostruisciTabella($p,$sql) {
    
$inter=$p->dammiIntervallo();
    
$res mysql_query("$sql limit {$inter[Paging::kIntervalloInizio]},{$inter[Paging::kIntervalloLunghezza]}") or die('Err4');
    
ob_start();

while (
$row mysql_fetch_assoc($res)){    
$date $row['data_invio'];
$data date('d/m/Y H:i:s',strtotime($date));
//Definizione della tabella
echo <<<END
<table cellspacing="0" cellpadding="5" rules="all" width="540px" border="0" style="border-color:#CCCCFF;">
<tr>
<th width="250px"><font color="red">Inviato da:</font></th>
<th width="250px"><font color="red">Data</font></th>
</tr>

<tr>
<th width="300px">
{$row['mittente']}</td>
<th width="300px">
$data</td>
</tr>
<tr>
<td class="messaggitesto" colspan="2" valign="top">
{$row['testo']}</td>
<td>[url="elimina_mex.php"]Elimina messaggio[/url] | [url="segnala_mex.php"]Segnala[/url]</td>
</tr>
</table>
END;
}

//link di navigazione
echo <<<END
[url="{$_SERVER['PHP_SELF']}?p={$p->precedentePagina()}"]Indietro[/url] |
[url="
{$_SERVER['PHP_SELF']}?p={$p->prossimaPagina()}"]Avanti[/url]
END;
mysql_free_result($res);
return 
ob_get_clean();
}

//connessione al database
include('connect.php');
//estrazione dei messaggi
$sql="SELECT * FROM MESSAGGI_ricevuti WHERE destinatario = '$team' ORDER BY data_invio DESC";

$p CostruisciOggettoPaging($sql);
$tabella_dati CostruisciTabella($p,$sql);
mysql_close($conn);
echo 
$tabella_dati;
?>
Ciao a tutti con il codice precendete devo estrarre i messaggi ricevuti dai miei utenti e impaginarli in 10 per pagina...devo creare una tabella per fare ciò che deve contenere mittente,testo,ecc. il problema con lo script precedente è che mi mostra solamente i link di navigazione avanti e indietro...ma della tabella nessuna traccia sapete dirmi perchè...grazie per l'aiuto