Foros del Web » Programando para Internet » PHP »

Numerar filas de tabla con Paginacion

Estas en el tema de Numerar filas de tabla con Paginacion en el foro de PHP en Foros del Web. Tengo una tabla en la que tengo puesta una variable para numerar las filas: $x = 1; y dentro del while: $x++; funciona perfectamente pero ...
  #1 (permalink)  
Antiguo 12/12/2008, 12:52
 
Fecha de Ingreso: enero-2008
Mensajes: 58
Antigüedad: 16 años, 3 meses
Puntos: 1
Numerar filas de tabla con Paginacion

Tengo una tabla en la que tengo puesta una variable para numerar las filas:
$x = 1;
y dentro del while:
$x++;

funciona perfectamente pero tengo una paginacion cuyo limite de pagina es 50 y al pasar de pagina,la numeracion sigue exactamente igual y lo que pretendo es que si pulso la pagina 2, me muestre los registros numerados del 51 al 100 y asi consecutivamente [pagina 3 registros del 101 al 150...].
Gracias,espero haberme explicado bien!
  #2 (permalink)  
Antiguo 12/12/2008, 13:37
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
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);
  #3 (permalink)  
Antiguo 12/12/2008, 16:33
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Numerar filas de tabla con Paginacion

Para obtener los números de registro acorde con la página multiplica el número de página menos 1 por el número de resultados por página, y al resultado le sumas 1. Desde ese número deberás empezar a contar.

Código PHP:
$x = ( ( $numero_de_pagina ) * $resultados_por_pagina ) + 1;

while(
true) {
     
//
     
$x++;

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:18.