Tema: Paginacion
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2005, 14:06
SinAliaS
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 16 años, 8 meses
Puntos: 0
Paginacion

Hola de nuevo y antes que hacer alguna pregunta quiero desearles a todos unas Felices Fiestas!!!
Ahora si voy a la question.
Tengo la siguiente inquietud, He conseguido un codigo para poder paginar los resultados encontrados en una consulta, que me ha sido de bastante utilidad y lo he modificado para uso personal, ahora lo que quisiera hacer es poder definir el numero de enlaces a mostrar en la pagina (porque cuando tengo 100 registros los numeros de las paginas mostradas son muchos y no queda prolijo)
hay alguna forma de poder mejorar este tema.
A continuacion les muestro el codigo que yo tengo. Gracias
Código:
<?
// aqui la coneccion

// configura algunas variables
$Pagina = $_GET['Pagina'];
if ($Pagina <= 0) $Pagina = 1;
$Tabla = "nombre tabla";
$PK = "id"; 
$CampoOrden = $PK;	// Campo de orden predeterminado
$TipoOrden = 'DESC';	// Tipo de orden predeterminado
$RegPorPag = 5;		// Cantidad de registros por página

$PrimReg = ($Pagina - 1) * $RegPorPag;
$sqlCuenta = "SELECT COUNT($PK) FROM $Tabla";
$sqlDatos = "SELECT * FROM $Tabla ORDER BY $CampoOrden $TipoOrden LIMIT $PrimReg, $RegPorPag";


// Cuento la cantidad de registros sin LIMIT
$result = @mysql_query($sqlCuenta);
$CantReg = mysql_result($result,0, 0);

// Ejecuto la consulta
$result = @mysql_query($sqlDatos);

//establesco si hay o no resultados
if ($CantReg<1) echo "<p>No hay resultados.</p>";
if (mysql_num_rows($result)){
?>
Se 
<? if ($CantReg>1) echo "encontraron"; ?>
<?=$CantReg?>
<? if ($CantReg>1) echo "resultados"; ?>

<!-- Paginacion -->
<?
if (ceil($CantReg/$RegPorPag) > 1){

echo "<p>";
if ($Pagina > 1) echo "<a href=\"{$_SERVER['PHP_SELF']}?Pagina=". ($Pagina-1) ."\">Anterior</a>";
if ($Pagina > 1 && $Pagina<ceil($CantReg/$RegPorPag)) echo " - ";
if ($Pagina<ceil($CantReg/$RegPorPag)) echo "<a href=\"{$_SERVER['PHP_SELF']}?Pagina=". ($Pagina+1) ."\">Siguiente</a>";

 echo " | P&aacute;ginas: ";
	$strPaginas = '';
	for($i=1;$i<=ceil($CantReg/$RegPorPag);$i++){
		if ($i == $Pagina) $strPaginas .= "<b>";
		else @$strPaginas .= "<a href=\"{$_SERVER['PHP_SELF']}?Pagina=". $i ."\">";
		$strPaginas .= $i;
		if ($i == $Pagina) $strPaginas .= "</b> - ";
		else $strPaginas .= "</a> - ";
	}
	echo substr($strPaginas, 0, strlen($strPaginas) - 3);
}

?>
<!-- Fin Paginacion -->
<?
//Leemos y escribimos los registros de la página actual
while($rs = mysql_fetch_array($result)){
    echo $rs['id']."<br />";
}
//cierro la coneccion
mysql_close($link);
}
?>