problema if (!empty()) con paginador

Iniciado por soru13, 9 Mayo 2011, 21:52 PM

0 Miembros y 1 Visitante están viendo este tema.

soru13

hola,hice el siguiente código para un paginador de resultados que tengo en mi web,lo que yo he hecho es ponerle los típicos botones de siguiente y anterior:

Código (php) [Seleccionar]
<?php 
         $totalPag 
ceil($total/$limit); 
         
$links = array(); 
         
$pagina $HTTP_GET_VARS["pag"];
 $sig $pagina 1;
 $ant $pagina 1;
 $siguiente "-&nbsp;<a href='index2.php?pag=$sig'>Siguiente >></a>";
 $anterior "&nbsp;<a href='index2.php?pag=$ant'><< Anterior</a>&nbsp;-";
         if (
$pagina 1) {
 echo $anterior;
 }else {
 }
 for( $i=1$i<=$totalPag $i++) 
         { 
            
$links[] = "<a href=\"index.php?pag=$i\">[$i]</a>";  
         } 
         echo 
implode(" - "$links);  
 if ($pagina >= $totalPag) {
 } else {
 echo $siguiente;
 }
      
?>


me funciona bien el código,el único problema es que cuando la página tiene ésta dirección:

http://www.miweb.com/index.php

no me obtiene el
Código (php) [Seleccionar]
$pagina = $HTTP_GET_VARS["pag"]; y entonces el botón de siguiente por defecto me lleva a

http://www.miweb.com/index.php?pag=1

pero el caso es que index.php?pag=1 muestra los mismos resultados que index.php, lo que necesito es que si no encuentra index.php?pag=X en el botón de siguiente lleve directamente a index.php?pag=2, para esto hice lo siguiente:

Código (php) [Seleccionar]
if (!empty($pagina)) {
echo "-&nbsp;<a href='index2.php?pag=2'>Siguiente >></a>";
} else {
echo $siguiente;
   }
}


pero me devuelve siempre el $siguiente a pesar que la url es index.php o index.php?pag=

¿Alguien me puede ayudar? Gracias

~ Yoya ~

El problema esta en el if(!empty($pagina)), la condición se cumple si la variable $pagina contiene algún valor. Resumido:

si la pagina contiene index.php?pag=X, se cumple la condición y se ejecuta el echo. Si contiene index.php, no se cumple la condición y pasa al else para luego ejecutar $siguiente.

Con esto bastaría:

Código (php) [Seleccionar]
<?php

 
if(empty($pagina)){

echo "-&nbsp;<a href='index2.php?pag=2'>Siguiente >></a>";
}else{

echo $siguiente;

    }

?>
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

soru13

¿Y entonces cómo hago para que si está en index.php el botón de siguiente vaya directamente a index.php?pag=2?

un saludo!

~ Yoya ~

Trata de ejecutarlo primero.

Código (php) [Seleccionar]
<?php
 
/*La variable $pagina contiene el valor del parametro $_GET['var']
Si no se le pasa el parametro 'var', la variable $pagina estaria 
vacia (index.php) y el boton siguiente iria a index.php?pag=2
*/


 
if(empty($pagina)){
echo "-&nbsp;<a href='index.php?pag=2'>Siguiente >></a>";
}else{ 
echo $siguiente;
    }
 
?>
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.


Nakp

solo para agregar... deberias usar $_GET en vez de $_HTTP_GET_VARS que es antiguo (y obsoleto, dejara de existir pronto)
Ojo por ojo, y el mundo acabará ciego.