Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con classe di paginazione

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    ma se visualizzi il sorgente della pagina? NOn c'è traccia nemmeno li della tabella?
    Jekkil

  3. #3

  4. #4
    qualcuno ha capito cosa ho sbagliato?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.