Foros del Web » Programando para Internet » PHP »

Paginacion

Estas en el tema de Paginacion en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/12/2005, 15:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 20 años, 7 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);
}
?>
  #2 (permalink)  
Antiguo 27/12/2005, 15:16
Avatar de decano  
Fecha de Ingreso: diciembre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 0
creo que tendrias qie primero definir que cantidad de resultados quieres ver por pagina asi podria dividir el resultado por x y tendira algo mas prolijo.

saludos
  #3 (permalink)  
Antiguo 27/12/2005, 15:21
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias por contestar. Lo que me decis ya lo tengo definido en la variable
// Cantidad de registros por página
$RegPorPag = 5;

yo lo que necesito es la cantidad de enlaces a los números de página que se mostrarán como máximo en la barra de navegación.
Y no se como agregarlo al codigo que ya tengo.
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 13:49.