Código PHP:
<?php
/* Clase para paginar resultados. Por Sourcegeek para FDW */
class PagClass {
/* Variables internas */
var $connection;
var $result;
var $query;
var $regpp;
var $pag;
/* Crear conexion a Mysql */
public function Connect($a, $b, $c, $d) {
if (!$this->connection = mysql_connect($a, $b, $c)) {
echo 'Error al conectar con mysql';
return false;
}
$this->SelDB($d);
}
/* Seleccionar la db */
private function SelDB($db) {
if (!mysql_select_db($db)) {
echo 'Error al seleccionar db';
return false;
}
return true;
}
/* Preparar informacion */
public function info($regpp, $pag, $query) {
if (!$pag) {
$inicio = 0; $pag = 1;
}else{
$inicio = ($pag - 1) * $regpp;
}
$this->pag = $pag;
$this->regpp = $regpp;
$this->query = mysql_query($query);
$this->result = mysql_query($query." LIMIT $inicio,$regpp");
}
/* Enviar informacion */
public function result() {
return $this->result;
}
/* Pagina anterior */
public function ant($txt) {
if (($this->pag - 1) > 0) {
return '<a href="?pag='.($this->pag - 1).'">'.$txt.'</a>';
}
}
/* Pagina siguiente */
public function sig($txt) {
$q = mysql_num_rows($this->query);
$pagtot = ceil($q / $this->regpp);
if (($this->pag + 1) <= $pagtot) {
return '<a href="?pag='.($this->pag + 1).'">'.$txt.'</a>';
}
}
}
?>
Código PHP:
<?php
// Incluimos la clase de paginacion y creamos nuevo objeto
include('pag.class.php');
$v = new PagClass();
// Abrimos una conexion y establecemos registros por pagina
$v->Connect('localhost', 'Usuario', 'Contrasena', 'BD');
$rpp = 4;
// Var de pagina actual. Para que funcionen los links de navegacion,
// debe ser $_GET['pag']
$pa = $_GET['pag'];
// La query que deseamos. Atencion de NO usar limit
$query = "SELECT * FROM ejemplo ORDER BY hora DESC";
// Enviamos los datos y preparamos la informacion
$v->info($rpp, $pa, $query);
// Obtenemos la informacion y la mostramos
while ($result = mysql_fetch_assoc($v->result)) {
echo "<b>Nombre:</b> {$result['nombre']}";
echo '<hr size="3"></hr>';
}
// Link a pagina anterior, siguiente y mostramos pagina actual
echo $v->ant('Anterior').' | ';
echo $v->sig('Siguiente');
echo '<br /><br /><br />';
echo 'Pagina actual: '.$pa;
?>
Se agradecen comentarios, sugerencias y demás.
Saludos!