Comunidad de diseño web y desarrollo en internet online

Problema GET var de URL = 0

Citar            
MensajeEscrito el 19 Ene 2011 11:15 pm
Hola amigos de cristalab....

tengo un sistema de paginacion en php. en donde el 0 es la primera pagina

el sistema usa GET para sacar la variables.

ejemplo: www.ejemplo..com/algo.php?current=5&display=10

(ignoren el display, ese es para limitar los resultados del array de una tabla de mysql)

luego... tengo un complicadisimo script para calcular las paginas que me funciona en 100% (no se los paso porque no le entenderian, con todo respeto, este es el tipo de cosas que apenas el que las hiso sabe que, y se tardarian mas en entenderle que en hacer uno ustedes mismos)

y se ve asi:

[1][2][3]~[4]~[5][6][7][8]...
cuando hay mas resultados que 4 Y el 4°numero + o - del current page NO es el ultimo/primero, se agregan "..." a la izq/derecha del respectivo numero

con formulas muy avansadas logre darle a la var "current" los valores necesarios para que 1=0,2 = (la cantidad de resultados que se ve por pagina), 3 = 3 veces la cantidad de resultados... etc...

lo malo biene aqui:

yo quiero use el siguiente script para determinar:
1)si la url tiene una variable en ella, se la asigna y copia la misma a $_SESSION
2)si no existen ninguna de las dos var ->$current ni $_SESSION, le asigna el valor de 0
***el valor de 0 AQUI ES DONDE SURGE EL PROBLEMA
3)si no existe la var Y no esta en la url Y SI esta en $_SESSION, la copia

aqui les paso lo que hise...

if (!$_GET["at"]){
}
else
{
$at=$_GET["at"];
}


if (!$at){
$at=$_SESSION['at'];
if (!$at){
$at=0;
$_SESSION['at']=0;
}
}
else
{
$_SESSION['at']=$at;
}


pero mi codigo no tiene eror, lo que tiene error es, que cuando lee del boton [1] para ir a la pagina con la VAR=0, esta la toma exactamente como si nisiquiera la ubiera escrito en la url!

ayuda plx

PD: NO, es imposible que el valor sea 1, y que modifique todo mi otros script...

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 19 Ene 2011 11:27 pm
perdon por no explicar mi codigo: aqui va pero explicado:

//aqui sacamos la variable de la URL, (si es que existe, sino no)
if (!$_GET["at"]){
}
else
{
$at=$_GET["at"];
}

//verificamos si esta vacia
if (!$at){
$at=$_SESSION['at'];
//si session tiene la var, se la pasa
if (!$at){
//si la variable todavia sigue vacia, (osea que la session no existia, no se la paso)
//pone los valores default, que es la pagina que muestre resultados de la tabla apartir del 0
$at=0;
$_SESSION['at']=0;
}
}
else
{
//le paso a la session la var
$_SESSION['at']=$at;
}

el problema es que cuando quiero ir a la URL = 0, con el GET, le da el valor de 0, y PASA POR DONDE NO DEBERIA PASAR (en este caso todos los if (!$at){ if (!$at){ if (!$at){if (!$at){if (!$at){if (!$at){if (!$at){if (!$at){)!!

no deberia pasar por ahi!!!, porque no esta empty!!!!! vale 0!!!!!! aunq alomejor el php cree que 0 es = que empty!!!

malddigo al que invento el PHP!!!!!!!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 20 Ene 2011 01:23 am
ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION ATENCION


ya lo resolvi...

lo que ise fue modificar mi script para que cuando la pagina sea = 1, le pusiera como valor una letra www.w.com/w.php?at=a

y entonces

if (!$at){
$at=$_SESSION['at'];
if (!$at){
$at=0;
$_SESSION['at']=0;
}
}
else
{
$_SESSION['at']=$at;
}
if ($at=="a"){
$_SESSION['at']=0;
$at=0;
}


heheh gracias de todos modos...... bye

PD: la razon por la que no queria modificar mi script es por que esta bien enredado... mira aqui se los pongo a ver quien le entiende XD

for($y=1,$g=0;$y<=$cp;$y++,$g=(($dis*$y)-$dis)){
$j=$cp-4;
if ($j<=1){
$j=1;
}

if ($y>$j && $y<$cp){
$xxq= "?at=$g";
echo ' [<a href="' . $xxq . '">' . $y . '</a>] ';
}
if ($y==$j && $y != 1){
$xxq= "?at=$g";
echo '... [<a href="' . $xxq . '">' . $y . '</a>] ';
}
if ($y==$j && $y==1){
if($y != $cp){
$xxq= "?at=o";
echo ' [<a href="' . $xxq . '">' . $y . '</a>] ';
}
}
}
if ($nup >=2){
echo" ~$cp~ ";
}

for($i=$cp+1,$x=$at+$dis,$h=$cp+4;($i<=$nup);$i++,$x=$x+$dis){
if ($h>=$nup){
$h=$nup;
}

if ($i<$h && $i>$cp){
$xtq= "?at=$x";
echo ' [<a href="' . $xtq . '">' . $i . '</a>] ';
}
if ($i==$h && $i!=$nup){
$xtq= "?at=$x";
echo ' [<a href="' . $xtq . '">' . $i . '</a>] ...';
}
else if ($i==$h && $i=$nup){
$xtq= "?at=$x";
echo ' [<a href="' . $xtq . '">' . $i . '</a>] ';
}

}

obviamente algunas variables ya tenian valores...

como cp= current page y asi....

con ese script me genera un array de numeros con links

dudo que le entiendan, pues solo yo se que significa cada var =/ bueno bye soy un genio

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 26 Ene 2011 05:45 pm
wow, q complejidad de algo tan simple, todo ese codigo lo puedes reducir enormemente.

Por cherivera

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2011 10:32 am
A ver si con esto te resulta más fácil....

Código PHP :

$max_registros = (int)(isset($_GET['display']))?mysql_real_escape_string($_GET['display']):10; // 10 registros por página(por defecto)

// obtenemos la página en la que estamos
$pagina = (int)(isset($_GET['current']))?mysql_real_escape_string($_GET['current']):1;

// Calculamos la posición desde donde efectuaremos la consulta
$inicio = ($pagina - 1) * $max_registros; 


// hacemos la consulta para conocer el total de registros almacenados
$numregs =mysql_query("Select COUNT(MICAMPO) as cuantos from MITABLA");

// miramos por si la consulta no devolviera resultado
$numregs =(@mysql_num_rows($numregs)!=0)? mysql_result($numregs,0):0;
   
// calculamos el total de páginas a 10 registros por página
$total_paginas = ceil($numregs / $max_registros); 
   
// Hacemos la consulta para la página en cuestion
$sql = "Select MISCAMPOS from MITABLA  Limit ".$inicio.",".$max_registros;

/* Limit a,b establece con a desde qué posicion en la base de datos va a comenzar la consulta y mediante b elegimos la cantidad de elementos que queremos obtener a partir de la posicion a */

// Nos queda mostrar los datos correspondientes a la consulta efecutada

.
.
Aqui mostrarías los datos de la consulta almacenados en $sql
.
.

Código PHP :

// y finalmente el paginador, que es tan simple como:

for ($i=1; $i<=$total_paginas; $i++)
{
        if ($pagina == $i) // estamos en la página actual
             echo " - [$i] - ";
       else
             echo "<a href=\" mipagina.php?current='.$i.'&display='.$max_registros.'\">['.$i.']</a>";
}



Un saludo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.