Foros del Web » Programando para Internet » PHP »

Problema con paginacion

Estas en el tema de Problema con paginacion en el foro de PHP en Foros del Web. En un sistema de paginación creado por mí, va todo bastante bien excepto una cosa a la hora de mostrar los numeros de pagina: en ...
  #1 (permalink)  
Antiguo 14/09/2010, 10:30
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Problema con paginacion

En un sistema de paginación creado por mí, va todo bastante bien excepto una cosa a la hora de mostrar los numeros de pagina: en lugar de mostrar todos los números de pagina, muestro el actual, tres a la izquierda, tres a la derecha y las flechas a los lados, segun la pagina que sea:

Código PHP:
//Esto es para poner una flecha de "Atras", "Primer"
if ($actual != 1){
            echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag=1">&lt;&lt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$actual-.'">&lt;</a> | ');
        }
//Aqui el resto de numeros
        
for($i=$desde$i<=$hasta$i++){
            if (
$i $actual){
                echo 
$i.' | ';
            }
            echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$i.'">'.$i.'</a> | ');
        }
//Aqui una flecha de "Adelante", "Último"
        
if ($actual != $paginas){
            echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag='1+$actual.'">&gt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$paginas .'">&gt;&gt</a> | ');
        } 
Como veis, es sencillito, pero no acaba de ir.
Si hay dos paginas y estas en la primera, te escribe esto en pantalla:

Código HTML:
<p style="clear:both">|
    1<a href="http://www.poemasamor.com.mx/categorias/poemas-tristes-32.html?pag=1">1</a> |
    2<a href="http://www.poemasamor.com.mx/categorias/poemas-tristes-32.html?pag=2">2</a> |
<!-- El error está aquí, no se por que se salta toda la parte de delante y solo pone eso -->
    1">&gt;</a> |
    >><a href="http://www.poemasamor.com.mx/categorias/poemas-tristes-32.html?pag=2">&gt;&gt</a> |     </p> 
No se por que ocurre, a ver si alguien me puede ayudar!
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #2 (permalink)  
Antiguo 14/09/2010, 11:25
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con paginacion

y cuales son los valores desde y hasta en ese momento??
creería que faltan validaciones de esos límites
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 14/09/2010, 12:56
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Problema con paginacion

Todo eso se calcula bien y está un poco más arriba, lo que no lo he querido poner. El problema es a la hora de mostrarlo
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #4 (permalink)  
Antiguo 14/09/2010, 13:30
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con paginacion

Cita:
Iniciado por markmb Ver Mensaje
Todo eso se calcula bien y está un poco más arriba, lo que no lo he querido poner. El problema es a la hora de mostrarlo
uhm, eso no responde mi pregunta......
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 14/09/2010, 13:34
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Problema con paginacion

Ok, ahora respondo:

Como he dicho antes, no se ponen todos los numeros de pagina, solo se ponen tres antes del actual y tres despues, pero como esto aun es pequeño, solo hay 2 paginas.

Hasta y desde son calculados segun diversos criterios, y en ese caso, como no hay suficientes como para hacer +3 y -3, pues Hasta=2 y Desde=1
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #6 (permalink)  
Antiguo 14/09/2010, 13:41
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con paginacion

Cita:
Iniciado por markmb Ver Mensaje
Ok, ahora respondo:

Como he dicho antes, no se ponen todos los numeros de pagina, solo se ponen tres antes del actual y tres despues, pero como esto aun es pequeño, solo hay 2 paginas.

Hasta y desde son calculados segun diversos criterios, y en ese caso, como no hay suficientes como para hacer +3 y -3, pues Hasta=2 y Desde=1
bueno, un detalle que se me paso antes

tienes esto

if ($i = $actual){

debería ser

if ($i == $actual){

revisa y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 14/09/2010, 14:16
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Problema con paginacion

Bueno, he modificado un par de cosillas:

Código PHP:
if ($actual != 1){
            echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag=1">&lt;&lt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$actual-.'">&lt;</a> | ');
        }
        for(
$i=$desde$i<=$hasta$i++){
            if (
$i == $actual){
                echo 
$i.' | ';
            }else{
                echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$i.'">'.$i.'</a> | ');
            }
        }        
        if (
$actual != $paginas){
            echo (
'<a href="'.$_SERVER['SCRIPT_URI'].'?pag='1+$actual.'">&gt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$paginas .'">&gt;&gt</a> | ');
        } 
Pero sigue poniendo lo que no debería poner, en la flecha a la derecha, en lugar de poner ">", pone 1">> y no se por que
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #8 (permalink)  
Antiguo 14/09/2010, 16:01
 
Fecha de Ingreso: agosto-2010
Ubicación: Mexico
Mensajes: 180
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con paginacion

El $_SERVER['SCRIPT_URI'] no podria causar problemas?
  #9 (permalink)  
Antiguo 14/09/2010, 17:06
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Problema con paginacion

Hola, ¡Paréntesis! PHP ha confundido la suma de la página con el encadenamiento de strings que estabas haciendo:

Código PHP:
Ver original
  1. echo ('<a href="'.$_SERVER['SCRIPT_URI'].'?pag=1">&lt;&lt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='. ($actual-1) .'">&lt;</a> | ');
  2.  
  3. echo ('<a href="'.$_SERVER['SCRIPT_URI'].'?pag='. (1+$actual) .'">&gt;</a> | <a href="'.$_SERVER['SCRIPT_URI'].'?pag='.$paginas .'">&gt;&gt</a> | ');

Ésta es la diferencia: (1 + $actual)

Última edición por perryjr; 14/09/2010 a las 17:07 Razón: Resaltar el cambio en el código
  #10 (permalink)  
Antiguo 15/09/2010, 07:35
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Problema con paginacion

Gracias perryjr!!!!!!!

La próxima vez voy a poner paréntesis
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....

Etiquetas: paginacion
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 03:26.