Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/12/2008, 13:37
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Numerar filas de tabla con Paginacion

No re cuerdo donde encontré este ejemplo, ni recuerdo su autor, esta implementado con ajax, pero puede servirte de base

Archivio de conexión:
conexion.php
Código PHP:
<?php
//Configuracion de la conexion a base de datos
$bd_host "localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "ribosomatic"
$con mysql_connect($bd_host$bd_usuario$bd_password); 
mysql_select_db($bd_base$con); 
?>
Archivo de paginar:
paginador.php
Código PHP:
<?php
require('conexion.php');
$RegistrosAMostrar=4;

//estos valores los recibo por GET
if(isset($_GET['pag'])){
    
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
    
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
    
$RegistrosAEmpezar=0;
    
$PagAct=1;
    
}
$Resultado=mysql_query("SELECT * FROM empleado ORDER BY nombres LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
echo 
"<table border='1px'>";
while(
$MostrarFila=mysql_fetch_array($Resultado)){
    echo 
"<tr>";
    echo 
"<td>".$MostrarFila['nombres']."</td>";
    echo 
"<td>".$MostrarFila['departamento']."</td>";
    echo 
"<td>".$MostrarFila['sueldo']."</td>";
    echo 
"</tr>";
}
echo 
"</table>";
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM empleado",$con));

$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;

//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0$PagUlt=floor($PagUlt)+1;

//desplazamiento
echo "<a onclick=\"Pagina('1')\">Primero</a> ";
if(
$PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if(
$PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
echo 
"<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>";
?>
El index
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Paginar Resultados</title>
<script type="text/javascript" src="ajax.js"></script>
<style>
td{
    width:200px;
}
a{
    text-decoration:underline;
    cursor:pointer;
}
</style>
</head>

<body>
<div style="margin:auto;width:500px;text-align:center;">
<table border="1px">
<tr>
 <td>Nombres</td>
 <td>Departamento</td>
 <td>Sueldo</td>
</tr>
</table>
<div id="contenido">
<?php include('paginador.php')?>
</div>
</div>
</body>
</html>
El ajax:
ajax.js
Código:
function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function Pagina(nropagina){
	//donde se mostrará los registros
	divContenido = document.getElementById('contenido');
	
	ajax=objetoAjax();
	//uso del medoto GET
	//indicamos el archivo que realizará el proceso de paginar
	//junto con un valor que representa el nro de pagina
	ajax.open("GET", "paginador.php?pag="+nropagina);
	divContenido.innerHTML= '<img src="anim.gif">';
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			//mostrar resultados en esta capa
			divContenido.innerHTML = ajax.responseText
		}
	}
	//como hacemos uso del metodo GET
	//colocamos null ya que enviamos 
	//el valor por la url ?pag=nropagina
	ajax.send(null)
}
La tabla sql:
Código:
CREATE TABLE `empleado` (
  `idempleado` int(11) NOT NULL auto_increment,
  `nombres` varchar(32) NOT NULL default '',
  `departamento` varchar(40) NOT NULL default '',
  `sueldo` double default NULL,
  KEY `id` (`idempleado`)
) ENGINE=MyISAM;

INSERT INTO `empleado` (`idempleado`,`nombres`,`departamento`,`sueldo`) VALUES 
 (1,'Juan Perez','Informatica',500),
 (2,'Laura Morales','Contabilidad',550),
 (3,'Luis Gutierrez','Administracion',850),
 (4,'Pedro Solar','Informatica',500),
 (5,'David Vilchez','Contabilidad',550),
 (6,'Juan Morales','Informatica',800),
 (7,'Vicente Fernandez','Informatica',690),
 (8,'Alex Castillo','Contabilidad',800),
 (9,'Wilberto Mendoz','Administracion',800),
 (10,'Sonia Morales','Logistica',800),
 (11,'Silvia Nesta','Logistica',900),
 (12,'David liñan','Logistica',500),
 (13,'Jerry Castillo','Administracion',800),
 (14,'Juan Hernandez','Administracion',900),
 (15,'Oswaldo','Administracion',500),
 (16,'Miguel Cabosmalon','Logistica',700),
 (17,'Ana Maria','Logistica',800),
 (18,'Lucy Hernandez','Logistica',500),
 (19,'Jorge Vasquez','Administracion',500),
 (20,'Yris Manrique','Contabilidad',400);