Salve ragazzi.
Ho una paginazione che mi estrae i dati da una tabella e dovrebbe ordinarli 5 per pagina. Fin qui tutto bene, se non fosse lo script mi tira fuori una pagina in più. Cioè, se ho ad esempio 8 dati in tabelle, invece di visualizzarli in due pagine, me ne da una terza. Ma che rimane vuota!!!! Perchè?
Vi posto il codice usato:
Codice PHP:
$count = mysql_query("SELECT COUNT(ordine_id) FROM ordini") or die( mysql_error() . "
" . $sql);
$res_count = mysql_fetch_row($count);
// numero totale di records
$tot_records = $res_count[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 5;
// numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = !isset($_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
echo "<div align=\"center\">\n<table>\n";
// esecuzione seconda query con LIMIT
$query_limit = mysql_query("SELECT utenti.*, eventi.evento as strEvento, ordini.*,
date_format(ordini.data,'%d-%m-%Y %H:%i') AS dataora
FROM utenti
INNER JOIN ordini ON ordini.utente_id = utenti.utente_id
INNER JOIN eventi ON eventi.event_id = ordini.event_id
WHERE utenti.utente_id ='".$_GET['id']."' Order by ordine_id Desc LIMIT $primo, $per_page") or die( mysql_error() . "
" . $sql);
// includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
include("paginazione_2.php");
//include("paginazione_1.php");
// in questa cella inseriamo la paginazione
echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";
echo " </tr>\n</table>\n</div>";
ecco il file della paginazione:
Codice PHP:
<?php
$paginazione = "Pagine totali: " . $tot_pages . "
[";
for($i = 1; $i <= $tot_pages; $i++) {
if($i == $current_page) {
$paginazione .= $i . " ";
} else {
$paginazione .= "<a href=\"?page=$i&id=".$_GET['id']."\" title=\"Vai alla pagina $i\">$i</a> ";
}
}
$paginazione .= "]";
?>
Da cosa può dipendere l'errore?