Puoi conoscere il numero esatto di post facendo un'altra query (non sarà il massimo perché le query raddoppiano, però è il modo più semplice...):
SELECT COUNT(*) AS conteggio FROM post
Ti restituirà una tabella 1 campo x 1 record dove puoi leggere il numero di post inseriti, e in base a quello decidere se e come costruire i link "pagina precedente" e "pagina successiva".
Altra cosa: le query scritte sopra non ti richiedono di conoscere l'ID del messaggio che visualizzi. È già specificato che con la prima query si visualizzano i primi 10 messaggi in ordine cronologico inverso, e con la seconda query i successivi 10.
Infine, sopra ho scritto "creare un'altra pagina", ma in realtà basta modificare ancora il template in modo che preveda un parametro "start": sarà impostato a 0 (quindi all'inizio del file) se non definito, oppure all'ultimo record visualizzato. In altre parole, usando PHP, il codice sarà più o meno questo:
Codice PHP:
// determina il numero dei post
$query = "SELECT COUNT(*) AS conteggio FROM post";
$result = mysql_query ($query, $db);
$n_post = mysql_fetch_array ($result)['conteggio'];
// determina il post iniziale e il numero di post visualizzati
if (isset ($_GET['start']))
$start = $_GET['start'];
else
$start = 0;
$post_per_page = 10;
// elabora i post selezionati
$query = "SELECT * FROM post ORDER BY data DESC LIMIT $start, $post_per_page";
$result = mysql_query ($query, $db);
while ($line = mysql_fetch_array ($result))
{
// ... elabora i post come preferisci
}
// link alla pagina precedente (se da utilizzare)
if ($start >= $post_per_page)
echo ('<a href="?start=' . ($start - $post_per_page) . '">Pagina precedente</a>');
// link alla pagina successiva (se da utilizzare)
if ($start + $post_per_page < $n_post)
echo ('<a href="?start=' . ($start + $post_per_page) . '">Pagina successiva</a>');
Stammi bene...