Dado que este tema sigue surgiendo en el foro una y otra vez, aquí va otra versión de lo mismo, más simple no se puede hacer. Espero que sirva:
Código PHP:
<?php
ini_set('display_errors', 1);
//Conexión a la DB
define('DB_USER', 'root');
define('DB_SERVER', 'localhost');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'test');
//Tabla de pruebas
/*
* CREATE TABLE `test` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` CHAR(8) DEFAULT NULL,
`number` VARCHAR(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MYISAM AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;
INSERT INTO `test`(`id`,`name`,`number`) VALUES (1,'NAME: 1','0.925545551744798'),(2,'NAME: 2','0.452182344582102'),(3,'NAME: 3','0.48427509840976'),(4,'NAME: 4','0.0648284890361396'),(5,'NAME: 5','0.871317180685063'),(6,'NAME: 6','0.162100467050542'),(7,'NAME: 7','0.196550823931164'),(8,'NAME: 8','0.49645274923784'),(9,'NAME: 9','0.892611305129352'),(10,'NAME: 10','0.973698308666887'),(11,'NAME: 11','0.190657658680023'),(12,'NAME: 12','0.0321933981331004'),(13,'NAME: 13','0.588994045359077'),(14,'NAME: 14','0.848390063129729'),(15,'NAME: 15','0.474968210305058'),(16,'NAME: 16','0.829670892869747'),(17,'NAME: 17','0.723449864167208'),(18,'NAME: 18','0.128236672960442'),(19,'NAME: 19','0.470833803034233'),(20,'NAME: 20','0.969459027023482'),(21,'NAME: 21','0.434793756748358');
*/
if(!$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD))die('No hay conexión');
if(!$db = mysql_select_db(DB_DATABASE))die('Imposible seleccionar DB!');
//Tama de las páginas a mostrar
define('PAGINA', 10);
//Obtener el número de página a mostrar y por tanto, el primer registro
$pagina = isset($_GET["pagina"])?$_GET["pagina"]:1;
//Primer regsitro
$inicio = ($pagina - 1) * PAGINA;
//Obtener total de registros en la tabla
$sql = "select * from test T;";
if(!$query = mysql_query($sql))die('Consulta incorrecta!');
$num_total_registros = mysql_num_rows($query);
//Liberar recursos
$free = mysql_free_result($query);
//El total de páginas
$total_paginas = ceil($num_total_registros / PAGINA);
//La consulta con LIMIR
$sql = "SELECT * from test LIMIT " . $inicio . "," . PAGINA;
$query = mysql_query($sql);
while ($fila = mysql_fetch_object($query)){
echo $fila->name . "<br>";
}
//Páginas y total de registros
echo "Total Registros: " . $num_total_registros . "<br>";
echo "Mostrando Página " . $pagina . " de " . $total_paginas . "<p>";
//Links para ANterior y siguiente
if($pagina > 1)echo "<a href='{$_SERVER['PHP_SELF']}?pagina=".($pagina-1)."'>Anterior</a> ";
if($pagina <= $total_paginas)echo "<a href='{$_SERVER['PHP_SELF']}?pagina=".($pagina+1)."'>Siguiente</a>";
?>