Foros del Web » Programando para Internet » PHP »

Dudas con paginacion

Estas en el tema de Dudas con paginacion en el foro de PHP en Foros del Web. Bueno tengo una paginador donde me crea una cantidad de 1280 paginas encontre un codigo k me los guarda: 1 2 3 4 5 6 ...
  #1 (permalink)  
Antiguo 14/04/2005, 13:41
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
Dudas con paginacion

Bueno tengo una paginador donde me crea una cantidad de 1280 paginas encontre un codigo k me los guarda:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Luego encontre un codigo el cual me mostraba solo pares ejemplo:

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52

pero esos codigos no me sirvieron por k me mostraban muchos numeros y me deformaban la pagina.

pregunta es la siguiente:

Alguien por casualidad tendra el codigo que me permita paginar de esta manera

< Atras << Primera 1 2 3 4 5 ... 20 21 22 23 24 25 Última >> Siguiente >

y no se como poder hacerlo si alguien me pudiese ayudar por favor
  #2 (permalink)  
Antiguo 14/04/2005, 14:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Creo que "Paginator" de jpinedo disponde de esa funcionalidad .. Revisalo:

http://jpinedo.webcindario.com/scripts/paginator/

Un saludo,
  #3 (permalink)  
Antiguo 14/04/2005, 14:40
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
:( no lo tienes es = al k tenia yo
  #4 (permalink)  
Antiguo 14/04/2005, 15:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisalo bien . .fijate:

Cita:
$_pagi_nav_num_enlaces: Entero. Cantidad de enlaces a los números de página que se mostrarán como máximo en la barra de navegación. Por defecto se muestran todos. Disponible desde la versión 1.3
Tal vez usas una versión anterior .. es una nueva funcionalidad que se incorporó desde esa versión de Paginator.

Un saludo,
  #5 (permalink)  
Antiguo 14/04/2005, 15:27
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
lo que entendi de esa variable es que solo te mostrar por ejemplo 10 paginas y las otras que sigan no mostraran ya que se pone un maximo de links a mostrar
  #6 (permalink)  
Antiguo 14/04/2005, 16:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Hola:
Esa variable te mostrará máximo "n" enlaces pero centrándose en la página actual.
Por ejemplo, si quieres que se muestren sólo 7 enlaces y estás en la página 1 será:
<anterior | 1 | 2 | 3 | 4 | 5 | 6 | 7 | siguiente>

Y si haces clic por ejemplo en la página 6 se mostrará:
<anterior | 3 | 4 | 5 | 6 | 7 | 8 | 9 | siguiente>

Saludos
  #7 (permalink)  
Antiguo 14/04/2005, 16:20
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
jpinedo un millon de gracias tonce lo ocupare :D te pasaste :P

El de jpinedo

Cita:
//------------------------------------------------------------------------


/*
* Generación de los enlaces de paginación.
*------------------------------------------------------------------------
*/
// La variable $_pagi_navegacion contendrá los enlaces a las páginas.
$_pagi_navegacion_temporal = array();
if ($_pagi_actual != 1){
// Si no estamos en la página 1. Ponemos el enlace "anterior"
$_pagi_url = $_pagi_actual - 1; //será el número de página al que enlazamos
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_ pagi_nav_anterior</a>";
}

if(!isset($_pagi_nav_num_enlaces)){
// Si no se definió la variable $_pagi_nav_num_enlaces
// Se asume que se mostrarán todos los números de página en los enlaces.
$_pagi_nav_desde = 1;//Desde la primera
$_pagi_nav_hasta = $_pagi_totalPags;//hasta la última
}else{
// Si se definió la variable $_pagi_nav_num_enlaces
// Calculamos el intervalo para restar y sumar a partir de la página actual
$_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1;

// Calculamos desde qué número de página se mostrará
$_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo;
// Calculamos hasta qué número de página se mostrará
$_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;

// Ajustamos los valores anteriores en caso sean resultados no válidos

// Si $_pagi_nav_desde es un número negativo
if($_pagi_nav_desde < 1){
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.
$_pagi_nav_hasta -= ($_pagi_nav_desde - 1);
// Establecemos $_pagi_nav_desde como 1.
$_pagi_nav_desde = 1;
}
// Si $_pagi_nav_hasta es un número mayor que el total de páginas
if($_pagi_nav_hasta > $_pagi_totalPags){
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar.
$_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags);
// Establecemos $_pagi_nav_hasta como el total de páginas.
$_pagi_nav_hasta = $_pagi_totalPags;
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
if($_pagi_nav_desde < 1){
$_pagi_nav_desde = 1;
}
}
}

for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags)
if ($_pagi_i == $_pagi_actual) {
// Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita.
$_pagi_navegacion_temporal[] = "<span ".$_pagi_nav_estilo_mod.">$_pagi_i</span>";
}else{
// Si es cualquier otro. Se escibe el enlace a dicho número de página.
$_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_i."'>".$_ pagi_i."</a>";
}
El mio

Cita:
for ($i = 1; $i<=($pages + 1); $i++) {
if ($i == $pg) {
$i=$i * 1;
echo "<font size=1><b> ($i) </b></font>";
}
else {
echo "<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=".$i."'>".$i."</a>|</font>";
}
ufff haber como le hago pa poder insertarlo en el mio :P

QUEDE COLGAO DE COMO INSERTAR EL CODIGO DE JPINEDO :(

Última edición por TReiLeR; 14/04/2005 a las 16:43
  #8 (permalink)  
Antiguo 14/04/2005, 18:59
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Mejor pon la consulta tal cual la haces (no sólo la parte de la paginación) para ayudarte a utilizar Paginator.
Saludos
  #9 (permalink)  
Antiguo 15/04/2005, 08:04
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
jpinedo aqui esta mi codigo el k me tiene sin pelo :P

Cita:
<?

$host="localhost";
$user="treiler";
$pass="xxx";
$db="db";
$tabla="table";

$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);

if (!isset($pg))

$pg = 0;
$cantidad = 15;
$inicial = $pg * $cantidad;

$pegar = "SELECT *, DATE_FORMAT(avso_fec,'%d/%m/%Y') as avso_fec FROM $tabla WHERE avso_texto LIKE '%$clave%' AND avso_fec BETWEEN '$final' and '$inicio' and `clsf_clsf_fox` < '167' LIMIT $inicial,$cantidad";
@$cad = mysql_db_query($db,$pegar) or die (mysql_error());

$contar = "SELECT *, DATE_FORMAT(avso_fec,'%d/%m/%Y') as avso_fec FROM $tabla WHERE avso_texto LIKE '%$clave%' AND avso_fec BETWEEN '$final' and '$inicio' and `clsf_clsf_fox` < '167'";
@$contarok = mysql_db_query($db,$contar);
@$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

@$cad1 = mysql_db_query($db,$pegar) or die (mysql_error());
@$consulta = mysql_fetch_array($cad1);

if(@$consulta =="")
{
echo "<br><center><b>No existe Información para su Consulta</b></b></center>";
}
else{

$paginas = $pg + 1;
$paginas2 = $pages + 1;
echo "</b>Número de avisos encontrados: <b>" . $total_records. "</b><br>";
echo "</b>Se muestran páginas de <b>" . $cantidad . "</b> registros cada una<br>";
echo "</b>Mostrando la página <b>" . $paginas . "</b> de <b>" . $paginas2 . "</b><p>";

while ($array = mysql_fetch_array($cad))
{

include'includes/clasificador.php';

$a = "<font color=FFFFFF>$avso_id</font>";
$b = "<font color=008000>$avso_id</font>";
if(@$color==1){
echo"$a";
$color = 0;
}else{
echo"$b";
$color = 1;
}
}

<input type="hidden" name="cantidad" value="15">
<br>
<center><input type="Submit" value="Guardar avisos seleccionados"></center>
<?
/* Cantidad de avisos seleccionados <input name="numero" type="text" size="2" style="background-color: #efefef; border-style: solid; border-color: #efefef" value=0> <input type="submit" value="Enviar" name="B1"> */
?>
</form>
<?
echo "<br><center><p>";
if ($pg <>0)
{
$url = $pg - 1;
echo "<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=".$url."'>< Anterior</a>&nbsp;</font>";
echo "<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=0'><< Primera Pagina</a>&nbsp;</font>";
}
for ($i = 1; $i<(1 + $pages - 0); $i++) {
if ($i == $pg) {
echo "<font size=1><b> ($i) </b></font>";
}
else {
echo "<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=".$i."'>".$i."</a>&nbsp;</font>";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "&nbsp;&nbsp;<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=".$pages."'>Última Pagina >></a></font>";
echo "&nbsp;&nbsp;<font size=1><a href='index.php?rastro=resultados&clave=".$clave." &pg=".$url."'>Siguiente ></a></font>";
}
else {
echo " ";
}
echo "</p></center><br>";

include("includes/desconectar.php");
}

?>
  #10 (permalink)  
Antiguo 15/04/2005, 10:07
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Hola:
La idea es que utilices Paginator para que sólo te preocupes detus consultas, de mostrarlas y no te preocupes de la paginación.
Por favor ve en la documentación de Paginator sobre las variables que se utilizan. Yo te pongo un ejemplo de cómo podría quedar tu código paginado con Paginator:
Código PHP:
$con = mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);

$_pagi_sql = "SELECT *, DATE_FORMAT(avso_fec,'%d/%m/%Y') as avso_fec FROM $tabla WHERE avso_texto LIKE '%$clave%' AND avso_fec BETWEEN '$final' and '$inicio' and `clsf_clsf_fox` < '167'";
$_pagi_cuantos = 15;//cantidad de registros por página.
$_pagi_nav_num_enlaces = 10; //cantidad de enlaces que se mostrarán como máximo
$_pagi_propagar = array('clave', 'final', 'inicio', 'tabla');// y otras variables que se necesiten para la consulta.

include("paginator.inc.php");

if($_pagi_totalReg == 0){
    echo "<br><center><b>No existe Información para su Consulta</b></b></center>";
}else{
    echo "</b>Número de avisos encontrados: <b>" . $_pagi_totalReg. "</b><br>";
    echo "</b>Se muestran páginas de <b>" . $_pagi_cuantos . "</b> registros cada una<br>";
    echo "</b>Mostrando avisos " . $_pagi_info . "<p>";

    while ($array = mysql_fetch_array($_pagi_result)){
        include 'includes/clasificador.php';
        $a = "<font color=FFFFFF>$avso_id</font>";
        $b = "<font color=008000>$avso_id</font>";
        if(@$color==1){
            echo"$a";
            $color = 0;
        }else{
            echo"$b";
            $color = 1;
        }
    }
    ?>
    <input type="hidden" name="cantidad" value="15">
    <br>
    <center><input type="Submit" value="Guardar avisos seleccionados"></center>
    <?
    
/* Cantidad de avisos seleccionados <input name="numero" type="text" size="2" style="background-color: #efefef; border-style: solid; border-color: #efefef" value=0> <input type="submit" value="Enviar" name="B1"> */
    
?>
    </form>
    <?
    
echo "<p align=\"center\">".$_pagi_navegacion."</p>";
}
?>
Saludos
  #11 (permalink)  
Antiguo 15/04/2005, 11:58
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años
Puntos: 0
jpinedo un millon de gracias funko la raja :D
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 15:46.