prova così..
questa la query, e annessi...
Codice PHP:
<?php
$hostname = "localhost";
$database = "DB";
$username = "root";
$password = "";
$conn = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
$currentPage = $_SERVER["PHP_SELF"];
// questo lo cambi per visualizzare quanti record vuoi..
$maxRows_Recordset1 = 10;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Recordset1'])) {
$pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
mysql_select_db($database, $conn);
$query_Recordset1 = "SELECT * FROM tabella ORDER BY ID DESC";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
if (isset($_GET['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
} else {
$all_Recordset1 = mysql_query($query_Recordset1);
$totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;
$queryString_Recordset1 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_Recordset1") == false &&
stristr($param, "totalRows_Recordset1") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
?>
questo per visualizzare i dati e la paginazione... forse è un po' complicata ma funziona una BOMBA... 
AH.. c'è anche il link ad una eventuale pagina di dettaglio...
Codice PHP:
<HTML>
<table border="1" align="center">
<?php do { ?>
<tr>
<td> [url="dettaglio.php?recordID=<?php echo $row_Recordset1['ID']; ?>"] <?php echo $row_Recordset1['uno']; ?> [/url] </td>
<td> <?php echo $row_Recordset1['due']; ?> </td>
<td> <?php echo $row_Recordset1['tre']; ?> </td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
<table border="0" width="50%" align="center">
<tr>
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
[url="<?php printf("]">Primo[/url]
<?php } // Show if not first page ?>
</td>
<td width="31%" align="center">
<?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
[url="<?php printf("]">Indietro[/url]
<?php } // Show if not first page ?>
</td>
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
[url="<?php printf("]">Avanti[/url]
<?php } // Show if not last page ?>
</td>
<td width="23%" align="center">
<?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
[url="<?php printf("]">Ultimo[/url]
<?php } // Show if not last page ?>
</td>
</tr>
</table>
Record da <?php echo ($startRow_Recordset1 + 1) ?> a <?php echo min($startRow_Recordset1 + $maxRows_Recordset1, $totalRows_Recordset1) ?> su <?php echo $totalRows_Recordset1 ?>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>