Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2012, 05:10
Avatar de repara2
repara2
 
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
[APORTE] Enésimo paginador de resultados PHP + MySQL

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_SERVERDB_USERDB_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>&nbsp;";
if(
$pagina <= $total_paginas)echo "<a href='{$_SERVER['PHP_SELF']}?pagina=".($pagina+1)."'>Siguiente</a>";
?>
__________________
Fere libenter homines, id quod volunt, credunt.