ciao a tutti, spero mi riusciate a delucidare su un mio piccolo problema. In pratica non riesco ad impaginare i risultati della query in modo decrescente.
Se inserisco order by id desc nella query questo mi restituisce i record in modo decrescente ma solo della pagina corrente, quindi se io ad esempio ho 30 record divisi per risultati di 10 per pagina mi restituisce ad esempio gli id così 10 9 8 7 6 5 4 3 2 1.
io invece voglio che l'ordine sia decrescente dall'ultimo record al primo e che quindi ncella pagina 1 i risultati partano da 30 e vadano in modo decrescente verso il primo record che si troverá in pagina 3.
vi posto il codice che sto utilizzando per l'impaginazione (questo è quello originale preso dal web che sto modificando in base alle mie esigenze)
// connessione al database
include('connect-db.php');
// numero di risultati da visualizzare per pagina
$per_page = 3;
// calcola le pagine totali
$result = mysql_query("SELECT * FROM players");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);
// controlla se la variabile 'page' è impostata nell'URL (es: view-paginated.php?page=1)
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
// mi assicuro che il valore di $show_page sia valido
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
// errore - mostra il primo set di risultati
$start = 0;
$end = $per_page;
}
}
else
{
// se la pagina non è impostata, mostra il primo set di risultati
$start = 0;
$end = $per_page;
}
// visualizza impaginazione
echo "<p><a href='view.php'>Visualizza Tutto</a> | <b>Visualizza impaginato:</b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
echo "<a href='view-paginated.php?page=$i'>$i</a> ";
}
echo "</p>";
// visualizza i dati in tabella
echo "<table border='1' cellpadding='10'>";
echo "<tr> <th>ID</th> <th>Nome</th> <th>Cognome</th> <th></th> <th></th></tr>";
// loop tra i risultati della query del database, visualizzandoli in tabella
for ($i = $start; $i < $end; $i++)
{
// mi assicuro che PHP non cerchi di mostrare risultati che non esistono
if ($i == $total_results) { break; }
// emissione del contenuto di ogni riga in una tabella
echo "<tr>";
echo '<td>' . mysql_result($result, $i, 'id') . '</td>';
echo '<td>' . mysql_result($result, $i, 'firstname') . '</td>';
echo '<td>' . mysql_result($result, $i, 'lastname') . '</td>';
echo '<td><a href="edit.php?id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>';
echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>';
echo "</tr>";
}
// chiude la tabella>
echo "</table>";
Grazie mille a chi mi aiuterà