Ciao
Attraverso un form invio dei dati sia per eseguire un'operazione sia per poi ritornare alla stessa pagina dove sono state fatte le selezioni:
Il codice che si occupa della paginazione è questo:
Codice PHP:
.................
$webpage = basename($_SERVER['PHP_SELF']);
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$max_results = 5;//numero di elementi da visualizzare per pagina.
$risultato = mysql_query($tutto);
$total_results = mysql_num_rows($risultato);
$total_pages = ceil($total_results / $max_results);
$from = (($page * $max_results) - $max_results);
$tutto.=" LIMIT $from, $max_results";
$querylim = mysql_query ($tutto);
...................
<td height="30" colspan="2" align="center" id="row18">
<?
echo pagination_31($total_pages, $page, $webpage);$checkscad);
?>
la funzione di paginazione richiamata nell'include (ne ho fatte anche delle varianti ma sostanzialmente funzionano tutte nello stesso modo):
Codice PHP:
function pagination_31($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale
$pagination = "";
if($total_pages!=1){
if($page>'1')
{
$pagination.="<a href=".$webpage."?page=1> << </a>
<a href=".$webpage."?page=".($page-1)."> Indietro </a>";
}
//Impostiamo il massimo numero di links di partenza da visualizzare nella pagina.
$maximum_links = 5;
//Se sono necessarie meno pagine rispetto al numero massimo
if($total_pages<=$maximum_links)
{
//Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1
$maximum_links = $total_pages+1;
}
//Se ne sono necessarie di piu, allora:
else{
//$maximum_links +1
$maximum_links=$maximum_links+1;
if($page>=$maximum_links){
$maximum_links=$page+1;
}
}
//next e ultima pagina;
if(($page >="1")&&($page!=$total_pages)){
$pagination.= "<a href=".$webpage."?page=".($page+1)."> Avanti </a>
<a href=".$webpage."?page=".$total_pages."> >> </a>";
}
}
else{
$pagination.="";
}
return($pagination);
}
Per ritornare alla stessa pagina invio anche una variabile con il numero di pagina richiamato da $_GET['page'].
Funziona tutto bene fino a quando nella pagina successiva non ci sono più dati
(quando esistono invece i record vengono scalati).
In questo caso viene stampato il numero di pagina senza record.
Cosa posso fare secondo voi per risolvere il problema?
Grazie