Ciao a tutti
Da ieri cerco di paginare una tabella mysql mettendo massimo 10 records per pagina.
Fino a qui tutto bene, riesco a limitare la query come voglio, il problema arriva però quando devo inserire i link alla pagina successiva e precedente: infatti se sono nella prima pagina il testo "<<precedente" non ha giustamente link, ma quando arrivo all'ultima pagina il testo "successive>>" continua ad avere il link e quindi ad aumentare la pagina all'infinito.
Mi ci sto sbattendo la testa ma non trovo proprio l'errore, sembra tutto giusto.
Mi son aiutato con il tutorial di questo sito, l'ho solo personalizzato per quello che mi serve.
Vi posto il codice:
Codice PHP:
############################
### PAGINAZIONE ###
############################
// esecuzione prima query
$query = "SELECT * FROM com_allievi ORDER BY numero DESC" ;
$result = mysql_query($query)
or die ("[Visualizzazione] Query fallita: " . mysql_error() );
$res_count_array = mysql_fetch_array($result);
$res_count = count($res_count_array);
// numero totale di records
$tot_records = $res_count[0];
//risultati per pagina(secondo parametro di LIMIT)
$per_page = 10;
//numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
if (isset($_GET['page']))
{
$current_page = (int)$_GET['page'];
}
else
{
$_GET['page'] = 1;
$current_page = $_GET['page'];
}
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
//inizio tabella
echo "<div align=center>
";
echo "<table width=590 border=1>";
echo "<tr><td width=100 align=center bgcolor=#4592B5>";
echo "[b]Data
Comunicato[/b]";
echo "</td><td width=390 align=center bgcolor=#4592B5>";
echo "[b]Comunicati F.I.G.C.[/b]";
echo "</td><td width=100 align=center bgcolor=#4592B5>";
echo "[b]Apri[/b]";
echo "</td></tr>";
// esecuzione seconda query con LIMIT
$query_limit = mysql_query("SELECT numero,data FROM com_allievi ORDER BY numero DESC LIMIT $primo, $per_page");
while($colonna = mysql_fetch_array($query_limit)) {
echo "<tr><td width=100 align=center>";
echo "$colonna[data]";
echo "</td><td width=400 align=center>";
echo "COMUNICATO N. ", $colonna['numero'];
echo "</td><td width=100 height=35 align=center>";
echo "[url="Allievi/Comunicati/$colonna[numero].pdf"]<img src=immagini/download.gif alt=download border=0 />[/url]";
echo "</td></tr>";
}
echo "</table>";
Ed ecco i link in questione:
Codice PHP:
if($current_page == 1)
{// se siamo nella prima pagina
$precedente = "<< precedente";
}
else
{ // altrimenti
$previous_page = ($current_page - 1);
$precedente = "<a href=?page=$previous_page><< precedente</a>";
}
if($current_page == $tot_pages) //L'ERRORE PENSO SIA QUI
{ // se siamo nell'ultima pagina
$successiva = "successiva >>";
}
else
{ // altrimenti
$next_page = ($current_page + 1);
$successiva = "[url="?page=$next_page>successiva"]>[/url]";
}
$paginazione = "$precedente $successiva";
// in questa cella inseriamo la paginazione
echo '<div align="center">
'.$paginazione.'
</div>';
Aiuto per favore
Grazie