Foros del Web » Creando para Internet » Diseño Gráfico »

Consejo para buscador de mi sitio

Estas en el tema de Consejo para buscador de mi sitio en el foro de Diseño Gráfico en Foros del Web. Buenos días a todos, foreros! Les escribo porque ando necesitando ayuda con un buscador para mi sitio. El tema es que tengo un formulario donde ...
  #1 (permalink)  
Antiguo 31/07/2010, 15:27
Avatar de ehguacho  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 4
Consejo para buscador de mi sitio

Buenos días a todos, foreros!

Les escribo porque ando necesitando ayuda con un buscador para mi sitio.

El tema es que tengo un formulario donde se ingresa que es lo que se quiere buscar. Dicho formulario es procesado en PHP y, luego de ser procesado, redirijo por código al usuario a la página anterior, es decir la del buscador, para mostrar los resultados. Para ser más claro: durante el proceso del formulario, voy metiendo en un arreglo ciertos valores que cumplen con el criterio de búsqueda, y finalizada la misma, redirijo al usuario a la página anterior pasando por URL dicho arreglo.

El problema es que no se como manejar la cuestión cuando hay muchos resultados, dado que, en algún momento, los resultados podrían ser tantos que no voy a poder pasar el arreglo anteriormente nombrado por URL, debido a que no va a dar la cantidad de caracteres para escribir en la barra de direcciones. Y esto sin nombrar lo espantoso que sería tener que esperar mil horas hasta que se muestren todos los resultados de la búsqueda en una misma página.

Por supuesto que la solución sería mostrar cierta cantidad de resultados por página, al igual que lo hace Google o cualquier otro motor de búsquedas. Como dije antes, si cierta búsqueda me produce muchos resultados, no puedo pasar un arreglo de tantos caracteres por URL, con lo cual me vería casi obligado a reprocesar la búsqueda y obviar aquellos resultados que ya se mostraron anteriormente.

Y es acá donde me trabo, donde no se como seguir, dado que no se me ocurre ninguna solición eficiente. No se cómo manejarlo. Acudo a ustedes porque se que en este foro hay mucha gente experimentada en tema de diseño web y seguramente alguno podrá ayudarme.

De más está decir que no es que abro este hilo sin haber intentado resolver la cuestión por mis propios medios y sin haberlo intentado de varias maneras, nada más alejado de la realidad, es sólo que antes de nombrar las soluciones que se me ocurrieron (ninguna anduvo del todo bien...) prefiero que alguien que ya se haya topado con este problema me dé una idea de cómo resolverlo de la mejor manera posible.

Saludos y gracias a todos de antemano!
__________________
Cine clásico en descarga directa! http://felliniycia.comule.com
  #2 (permalink)  
Antiguo 02/08/2010, 13:25
Avatar de Sergiorelativo  
Fecha de Ingreso: diciembre-2009
Ubicación: Cadiz
Mensajes: 259
Antigüedad: 14 años, 11 meses
Puntos: 6
Respuesta: Consejo para buscador de mi sitio

Una pregunta, ¿para obtener dichos resultados que lo hacer mediante una consulta SQL?.

Lo más lógico sería que el código PHP de la consulta se ejecute en la misma pagina donde se ejecute y no tener que pasar datos por URL ni nada. Ahora bien, si lo haces por SQL puedes paginar usando OFFSET y LIMIT.

Espero haberte servido de ayuda, o al menos inspirado

¡Saludos!
  #3 (permalink)  
Antiguo 02/08/2010, 13:56
Avatar de Daniel Ulczyk
Super Moderador
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires
Mensajes: 9.264
Antigüedad: 19 años, 9 meses
Puntos: 2114
Respuesta: Consejo para buscador de mi sitio

Hola *ehguacho*

Si no malinterpreto tu inquietud, ofrecer una paginación es una de las soluciones más acertadas.

De hecho, el usuario medio; está ya acostumbrado a eso. Como bien citás, Google es un buen ejemplo.
__________________
—Somos lo que hacemos repetidamente. La excelencia, entonces, no es un acto sino un hábito. (Aristóteles dixit)
  #4 (permalink)  
Antiguo 03/08/2010, 12:31
Avatar de ehguacho  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Consejo para buscador de mi sitio

gracias por sus respuestas!

por suerte ya pude solucionarlo.

por si a alguno le sirve, les comento que fue básicamente lo que hice.

el usuario especifica lo que desea buscar en un formulario. luego el usuario presiona el botón "buscar" y el formulario es enviado y procesado en PHP.

el script que procesa el formulario, luego de procesar dicho formulario, reenvía al usuario a la página anterior y muestra los resultados obtenidos.
para poder tomar los datos de los resultados, los paso por URL al momento de redirigir al usuario.
por URL paso, además del arreglo con los datos que necesito para mostrar los resultados, una serie de variables que, en cojunto, especifican los parámetros de búsqueda ingresados por el usuario al momento de ejecutar dicha búsqueda.
si la cantidad de resultados obtenidos excede la cantidad máxima de resultados a mostrar por página, ahí es cuando se deben paginar los resultados, es decir mostrar unos links onda "pagina 1 - pagina 2 - ..." donde cada uno de esos links es una página de resultados (como lo hace Google, por ejemplo).
en realidad, lo que hago para paginar los resultados es reprocesar la búsqueda ingresada por el usuario e ignorar los primeros N resultados, es decir los resultados que han de mostrarse en las páginas de resultados anteriores.
para ser más claro: cada vez que el usuario presiona en uno de los links que muestran una página de resultados, llamo a una funcion javascript que lo que hace es tomar los parámetros que pasé por URL (o sea los que pasé al momento de redirigir al usuario para mostrar los resultados), ingresarlos correspondientemente en los campos donde el usuario especifica los parámetros de la búsqueda, ingresar en un campo hidden el número de página al cual se dese saltar y luego reenviar el formulario.
dentro del script que procesa el formulario tengo una variable "$pagina" que lo que hace es almacenar el número de página para saber que resultados han de mostrarse. por ejemplo: si estamos mostrando 10 resultados por página y se desea saltar a la página 3, entonces deberemos ignorar los primeros 20 resultados obtenidos y guardar los siguientes 10, que son los que deben ser mostrados.

la onda es que siempre que se presiona el boton "buscar", se está especificando una nueva búsqueda, con lo cual el formulario es enviado con un campo hidden que toma valor 0, dado que 0 es el número de página de resultados que se desea mostrar, es decir que no se debe obviar ningúno de los primeros N resultado (debido a que es una nueva búsqueda). cuando el usuario desea saltar, por ejemplo, a la página 3, asigno mediante javascript a dicho campo hidden el valor "3" y reenvío el formulario de búsqueda para luego ser procesado.

es medio mambo explicarlo, pero les dejo el link a mi sitio para que vean como funciona: http://mamedk.comule.com/index.php?seccion=2

realicen una búsqueda especificando algunos parámetros, y luego presionen en alguno de los links de página de resultados. van a ver como los datos que ingresaron en el formulario de búsqueda al momento de ejecutar la misma son reescritos dentro de los elementos del formulario y luego es reenviado.

espero que a alguien le sea útil. no se si será la mejor solución, pero a mi me funcionó a la perfección.

saludos!
__________________
Cine clásico en descarga directa! http://felliniycia.comule.com

Etiquetas: consejo, buscadores
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 23:15.