Mi serve recuperare sempre 20 valori, ordinati dal più piccolo al più grande ma facendo in modo che l'ultimo valore dell'elenco corrisponda anche all'ultimo valore del database.

Non è detto che siano per forza 60, magari lo sono oggi, domani diventeranno 80, dopodomani 200. Ma a me interessa che prenda sempre 20 valori, sempre ordinati dal più piccolo al più grande e che l'ultimo sia sempre l'ultimo sul database, cioè, se ci sono 60 righe nel database i valori devono essere compresi fra 40 e 60, se ce ne sono 80 i valori devono essere compresi tra 60 e 80, se ce ne sono 200 devono essere compresi fra 180 e 200 e così, via. Però il numero di righe non è mai una costante.

Mi sembra sia abbastanza chiaro.... comunque ti mostro esattamente come funziona il mio codice:

$sql = "SELECT ID, DATO1, DATO2, DATON FROM TABELLA ORDER BY ID DESC LIMIT 20";
$query = mysql_query ($sql, $connessione) or die(mysql_error());

while ($row=mysql_fetch_array($query)){
$ID=$row["ID"];
$DATO1=$row["DATO1"];
$DATO2=$row["DATO2"];
$DATON=$row["DATON"];

echo "$ID, $DATO1, $DATO2, $DATON";
}


Questo è il mio codice e funziona perfettamente, solo che i valori che compaiono a video sono ordinati in questa maniera (ponendo che nel databse ci siano 38 righe):

38
37
36
35
..ecc..
19
18

io vorre che invece siano ordinati in questa maniera:

18
19
..ecc..
35
36
37
38

Se la volta successiva che si effettua la query le righe del database dovessero essere diventate, diciamo, 42 allora voglio che mi scriva i valori compresi fra 22 e 42 sempre ordinati dal più piccolo al più grande, se dovessero esserci invece, 173 righe voglio che mi ordini, sempre nello stesso modo, i valori compresi fra 153 e 173 e così di seguito....