Comunidad de diseño web y desarrollo en internet online

Buscador con paginador //sucede algo raro

Citar            
MensajeEscrito el 27 Ago 2008 02:48 am
Hola que tal! un saludo... esperando este de lujo!!

De nuevo por aquì con otra pequeña duda
Describo un poco el proyecto:
He creado un buscador con su paginador que haga consultas a los campos de una tabla y funciona ok pero si quiero que el campo de el form no quede en blanco empieza el problema.
El form dentro de el archivo buscador.php es el siguiente:

Código :

<form action="buscador.php" method="get">
<input type="text" name="busqueda" class="descriptivo"/>
<input type="submit" name="submit" value="consulta" />
</form>

Para paginar

Código PHP :

//mediante una funcion conecto a la base de datos---le sigue lo siguiente:
$registros = 3;
$pagina = $_GET['pagina'];
if (!$pagina) { 
    $inicio = 0; 
    $pagina = 1; 
} 
else { 
    $inicio = ($pagina - 1) * $registros; 
} 


El script dentro del archivo buscador.php donde esta el detalle :

Código PHP :

$busqueda = $_GET['busqueda'];
if(!$busqueda)
{
echo"<br><strong>ERROR!!</strong>";
exit;
}


Caso práctico:

Realizo una busqueda mmm... diseño!; aparecen los resultados que tengan la palabra diseño con su paginador 1 2 3 4 Siguiente>> si le doy click a 2 me aparece mi mensaje de ERROR! es decir porque reconoce a el campo de texto como vacio.

Si le quito el mensaje de ERROR! le doy click al boton buscar y me imprime toda la tabla con su paginador...

He checado que todas las variables esten en $_GET

Alguna sugerencia de como resolver esto... Si no me dejo entender (raro) puedo dejarles el link real de el ejemplo.


Bueno de momento me despido esperando tengan un buen dìa gracias

Por etzekiel

107 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 27 Ago 2008 03:06 am
pasa el valor de get a una variable de sesion despues solo cuando valla a continuar las paginas llama a la variable de sesion esa seria la unica o un campo hidden en el form pero bueno te dejo la duda con una variable de sesion

Por talcual

686 de clabLevel



 

Colombia

msie
Citar            
MensajeEscrito el 27 Ago 2008 05:38 am
Gracias talcual por tu respuesta, mas sin embargo no me han recomendado eso de la _SESSION para un sistema de busqueda... o tu si me lo recomiendas?

Por etzekiel

107 de clabLevel



 

Mexico

opera
Citar            
MensajeEscrito el 27 Ago 2008 08:30 am

talcual escribió:

pasa el valor de get a [...] un campo hidden en el form [...]
Creo que esto sería lo mejor (sin haber analizado todo tu código)
De esta manera, pasando el objeto de la búsqueda, mediante un <input type="hidden />, siempre podrás obtenerlo mediante "get"

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 28 Ago 2008 03:16 am
Hola que ta! un saludo!

Con respecto a mi duda, lo he hecho con SESSION y me da el mismo error. Si no destruyo la session session_destroy(); puede quedar el campo de texto en blanco y hace la consulta...

Oso amoroso seria mucho pedir que me ejemplificaras un poquito tu respuesta?

De todas formas dejo el link para que vean su funcionamiento... gracias!

Por etzekiel

107 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 28 Ago 2008 10:13 am
Quizá no entendí el problema... y me precipité en la respuesta.
En cualquier caso... ahora no veo que tu buscador devuelva ningún error.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 28 Ago 2008 12:53 pm
El error es que al no destruir la session sigue recordando los primeros parametros escritos en el campo de texto...

Ejemplo:
1. 1era busqueda: "diseño"
2. Ok aparecen los resultados con su paginación... El campo de texto queda en blanco,
3. Presiono otra vez el boton buscar y aparecen los resultados anteriores, lo cual no deberia pasar (en teoría) pues en mi script especifico que si el campo de texto esta vacio me devuelva un mensaje de advertencia. Bueno como lo dije arriba no he destruido la session por ende su comportamiento, pero, cuando destruyo la session sucede esto:

1. 1era busqueda: "a" (mi base de datos no es tan robusta así que este caso ejemplifica muy bien)
2. Ok aparecen los resultado con su paginación: 1 2 3 >> pulso 2 para ver los siguientes resultados y ahì es cuando me devuelve el mensaje de advertencia...

De momento estoy suspendido en este detalle... he visto que en el buscador interno de cl se queda la palabra de la busqueda en el campo de texto! y en el mio no... existira otra forma más letal para este caso? :(

Por etzekiel

107 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 28 Ago 2008 03:57 pm
No termino de entender porqué trabajas con sesiones.
Por qué no capturas los datos por "GET", y el paginado lo haces como:
<a href="http://www.eutopika.com/ejercicio.php?pagina=2&busqueda=diseño">2</a>

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 28 Ago 2008 11:48 pm
Trabaje con SESSION por mi novates jajajaja pero he seguido sus sabios consejos de hacerlo mediante GET. Ahora el script de mi buscador ya funciona de lujo ya podré salir un rato a tomar un cafe!!!

Gracias rizome o el oso amoroso

Por etzekiel

107 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 29 Ago 2008 12:45 am
jajaja bro en la programacion hay muchas formas de hacer algo bueno te felicito por tu exito con sesiones y con get se puede hacer saludos y con sesiones si cambias la query tienes q cambiar el valor de la sesion bueno saludos

Por talcual

686 de clabLevel



 

Colombia

msie
Citar            
MensajeEscrito el 30 Ago 2008 12:04 am
me alegro de haberte ayudado.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox

 

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