Menù navigazione di una paginazione

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao a tutti,io ho questo codice per impaginare i record estratti da una tabella:
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>1 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 = 25;
    return new Paging($pagCorr, $totRighe, $righePerPagina);
}

//REALIZZA LA TABELLA E LA RITORNA SOTTO FORMA DI STRINGA
function CostruisciTabella($p,$sql) {
    $inter=$p->dammiIntervallo();
    $res = mysql_query("$sql limit {$inter[Paging::kIntervalloInizio]},{$inter[Paging::kIntervalloLunghezza]}") or die('Err4');
    ob_start();
    //Definizione della tabella
    echo <<<END
<table border="0" cellpadding="7px">
    <tr>
        <th>Nome</th>
        <th>Cognome</th>
        <th>Ruolo</th>
        <th>Et&agrave;</th>
        <th>Costo</th>
        <th>Squadra</th>
        <th>Tiro</th>
        <th>Velocit&agrave;</th>
        <th>Tecnica</th>
        <th>Scivolata</th>
        <th>Resistenza</th>
    </tr>
END;
    while ($row = mysql_fetch_assoc($res)) {
    $costo = number_format($row['costo'], "0", "", "."); 
    echo <<<END
    <tr>
        <td>{$row['nome']}</td>
        <td>{$row['cognome']}</td>
        <td>{$row['ruolo']}</td>
        <td>{$row['età']}</td>
        <td>$costo €</td>
        <td>{$row['squadra']}</td>
        <td>{$row['tiro']}</td>
        <td>{$row['velocità']}</td>
        <td>{$row['tecnica']}</td>
        <td>{$row['scivolata']}</td>
        <td>{$row['resistenza']}</td>
        <td><a href="azione_compra.php?id_gioc={$row['id']}"><img src="immagini/icona_compra.jpg"></a></td>
    </tr>
END;
    }
    //Link di navigazione
    echo <<<END
    <th colspan="2">
        <a href="{$_SERVER['PHP_SELF']}?p={$p->precedentePagina()}">Indietro</a> |
        <a href="{$_SERVER['PHP_SELF']}?p={$p->prossimaPagina()}">Avanti</a>
    </th>
</table>
END;
     mysql_free_result($res);
     return ob_get_clean();
}

//connessione al database
include('../connect.php');

//estrazione dei giocatori
$sql="SELECT * FROM GIOC_giovani WHERE squadra='Senza contratto.' AND ruolo='At' ORDER BY nome ASC";

$p = CostruisciOggettoPaging($sql);
$tabella_dati = CostruisciTabella($p,$sql);

mysql_close($conn);

echo $tabella_dati;
?>

Il codice funziona perfettamente vorrei solo apportare una modifica al menù di navigazione....adesso ad esempio c'è "Indietro" e "Avanti"...come posso fare per avere invece il numero della pagina cioè "1" "2" "3" ecc.

Vi ringrazio in anticipo0:)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prendi spunto da questa classe che fa più o meno la stessa cosa ma ha in più la funzione che ti serve.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z Menù di navigazione responsivo HTML e CSS 0
I creazione menù di navigazione con photoshop Photoshop 2
I Barra navigazione/menù HTML e CSS 24
I barra navigazione/menù HTML e CSS 0
coteaz barre di navigazione, menù ecc Javascript 3
psikolele Dropdown menù HTML e CSS 2
G Menù a tendina di ricerca con query PHP 1
F menù select dinamico da db in php PHP 3
L Menù con switch case C/C++ 1
J Richiama descrizione da menù PHP 11
R Barra del menù principale decentrata Joomla 4
M Stringa con spazi nel menù a tendina PHP 4
A Menù a tendina collegato a database PHP 13
D Aumentare i sublevel del menù del theme Webdesign e Grafica 1
Tommy03 Contenitore non si nasconde dietro al menù HTML e CSS 1
Tommy03 Due menù nella stessa app Sviluppo app per Android 0
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
C [PHP] Form inserimento più menù a discesa PHP 9
V Menù CSS da file in cartella esterna HTML e CSS 4
W [Javascript] [HTML] menù responsive fisso Javascript 2
S [PHP] menù a tendina che stampi voce scelta in precedenza PHP 1
F [HTML] Responsive menù CMS (Content Management System) 0
A [PHP] menù con links esterni PHP 6
D Come inserire opzioni menù prelevandole dal database con PHP ? PHP 12
F [HTML] li menù width HTML e CSS 3
T [Javascript] un form con select dinamica che funzioni da menù... Javascript 2
ecosito [Wordpress] La barra del menù mi nasconde la parte alta delle pagine WordPress 0
greven [WordPress] [CSS3] Inserire Hover Effect sul menù WordPress 10
F Problema hover voce di menù Javascript 2
F Nascondere menù onclick sottovoce jQuery 0
F Active menù HTML e CSS 2
A menù a tendina aiuto PHP 1
M Menù a tendina editabile HTML e CSS 0
P problema con tendina del menù, scompare sotto i contenuti HTML e CSS 7
F Link menù attivo categoria PHP 2
MarcoGrazia Breadcrumbs, menù a briciole di pane Snippet PHP 2
I nav menù HTML e CSS 13
LuigiDonato Problema Visualizzazione Menù HTML e CSS 17
C Menù scomparso WordPress 2
V Posizionare Iframe e menù a discesa HTML e CSS 1
F z-index menù HTML e CSS 4
Tommi Script per menù Javascript 16
Licantropo esportare tags e menù Joomla 0
F Menù a tendina Joomla 4
L [PHP] 3 menù Select OPTION consecutivi PHP 1
Carlito's Menù jQuery 1
E Menù da modificare HTML e CSS 2
H Menù a discesa contenente dati db, la scelta dal menù deve essere inviata in un altro db. PHP 1
andreaco Problema menù a scomparsa laterale HTML e CSS 10
L Inserisco 2 menù e vedo sempre il primo PHP 0

Discussioni simili