questa è la prima parte della paginazione, il calcolo di come devono essere impostati i valori
Codice PHP:
//-->recuperi tramite querystring il numero della pagina
$pag = $_GET['pag'];
//-->se la pagina non è valorizzata
if (!isse($pag)){
//--> la setti a 1
$pag=1;
}
//-->conti le righe che sono presenti nel database, le stesse che stamperai a video nella tabella
$count = mysql_query("SELECT COUNT(id) FROM nome_tabella");$res_count = mysql_fetch_row($count);
//<--
$tot_records = $res_count[0];
//-->inserisci in una variabile il numero di pagine che vuoi visualizzare ogni volta
$per_page = 20;
<--
//-->esegui il calcolo per le pagine totali che avrai
$tot_pages = ceil($tot_records / $per_page);
//<--
//-->selezioni la pagina corrente nel quale sei
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
<--
//-->inserisci nella variabile il primo valore del LIMIT
$primo = ($current_page - 1) * $per_page;
questa è l'aultima parte, ossia quella dei link
Codice PHP:
//-->stampi a video il numero delle pagine totali
$paginazione = "Pagine totali: " . $tot_pages . "
[";
//ciclo per il numero delle pagine totali
for($i = 1; $i <= $tot_pages; $i++) {
//se la pagina corrente è uguale al valore dell'incrementatore i
if($i == $current_page) {
//rendi il numero non cliccabile (se vuoi puoi cambiiarli colore etc...)
$paginazione .= $i . " ";
} else {
//altrimenti crei il link per andate alla pagina successiva
$paginazione .= "<a href=\"?pag=$i\" title=\"Vai alla pagina $i\">$i</a> ";
}
}
$paginazione .= "]";
ora , tu hai bisogno che ogni volta che il ciclo errettua 3 giri vada a capo...
quindi se i = 3 carichi una variabili $acapo=
e la imposti a fianco del link...
ma come possiamo ? la i vrà valore 3 una volta sola.
Mi viene in mente di usare il resto...
4/3 da resto sarà circa 1.x
6/3 da resto 0
9/3 da resto 0
10/3 daraà resto 3.x
Ora non so come sia la funzione per il resto in
potresti fare una cosa del genere :
Codice PHP:
$variabile=3;
$acapo="";
//ciclo per il numero delle pagine totali
for($i = 1; $i <= $tot_pages; $i++) {
//-->crei il modulo resto se non erro si fa con %
$resto = $i%$variabile;
if ($resto == 0){
$acapo = "
";
}else{
$acapo="";
}
//se la pagina corrente è uguale al valore dell'incrementatore i
if($i == $current_page) {
//rendi il numero non cliccabile (se vuoi puoi cambiiarli colore etc...)
$paginazione .= $i . " ";
} else {
//altrimenti crei il link per andate alla pagina successiva
$paginazione .= "<a href=\"url_della_pagina?pag=$i\" title=\"Vai alla pagina $i\">$i</a>$acapo"
}
}
spero sia corretto , ma il ragionamento ci può stare