Originariamente inviata da
m4rko80
Ciao, quello che serve e' appunto una paginazione.
Il concetto di avere tutto e nascondere i blocchi e' sbagliato perchè vorrebbe dire estrarre sempre tutto dal database e nascondere ( a lungo andare lo script e la pagina sarebbe sempre più pensante, sia per i tempi di caricamento lato server che rendering di pagina).
Quello che dovresti fare è decidere quanti dati mostrare per pagina. Di conseguenza quello che ti serve è calcolare un totale dei dati presenti a db, settare quanti ne vuoi per pagine e quindi fare una query iniziale coi soli dati della prima pagina.
codice:
//$tot = Query per totale -> risultato es. 200 record
//$perPage = 10;
//$totalePagine = ceil($tot/$perPage);
//Query dati prima pagina usando LIMIT e OFFSET tipo "SELECT * FROM table LIMIT 0, $perPage" (dall'inizio i primi 10)
In pagina coi dati sopra, crei la paginazione/link e passerai via url in GET page=X
Se presente $_GET['page'] rifai la stessa cosa calcolando però l'offset corretto in base alla pagina passata, in pagina due ad esempio la query sarà tipo "SELECT ..... LIMIT 10,10" e così via.
I modi per fare la paginazione sono diversi ovviamente, in GET con parametri visibili in url, in POST, o in Ajax per non ricaricare tutta la pagina.
Questo è uno dei tanti esempi