Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2005, 10:52
raml
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 0
Pregunta Problema con Búsqueda y Paginación de Resultados

Hola, espero me puedan ayudar. Para mí es una de esas situaciones en la que el cerebro ya dejó de cooperar , llevo sólo mes y medio programando y aún me falta algo de esa intuición PHP. Aunque estoy seguro que es un ejemplo interesante y le puede servir a muchos.

Tengo una base de datos MySQL con una lista de noticias. La tabla que contiene las noticias esta estructurada con los siguientes campos:

id (primary key) / titulo / id_dia / id_mes / id_ano


id_dia, id_mes y id_ano estan conectadas con sus tablas respectivas (días, meses y años) las cuales contienen información para formar un calendario completo:

Tabla "dias" : contiene 31 campos (31 días por mes)
Tabla "meses": contiene 12 campos (12 meses por año)
Tabla "anos": sólo del 2003 al 2006

Esto lo utilizo para realizar una búsqueda de las base de datos por día, mes y año pero también pueden hacerla por día, por mes y/o por año.

Ejemplos de búsquedas:

(día, mes, año) 31 - Febrero – 2005
(día y mes de cualquier año) 31 – Febrero
(por mes y año) Febrero – 2005
(sólo por año) 2005

El calendario esta conformado por 3 menús de salto (html): día, mes y año; además de un botón de envío llamado buscar.

Cuando se realiza la búsqueda de la Base de Datos, el script muestra como resultado únicamente los títulos de las noticias. Por otro lado, el menú de salto con el calendario sigue apareciendo junto a los resultados obtenidos y sigue mostrando la opción de búsqueda elegida, es decir: la fecha que escogiste.

Para evitar el problema de tener que listar muchos resultados, los limité a 4 por página y utilicé un script que los pagina (el script de llama Pagination Script y lo obtuve de: http://mpageni.com/fun/index.php?page=downloads) Ejemplo Script:

Anterior << 1 2 3 4 5 >> Siguiente


PROBLEMAS - PREGUNTAS:
Código PHP:
1)Digamos en la base de datos de noticias existen 10 que pertenecen a Febrero del 2005. Cuando realizo la búsqueda por fechasolicitando sólo las noticias de Febrero del 2005el script de búsqueda me muestraen efectolas primeras 4 noticias de Febrero del 2005 pero cuando le doy clic en Siguiente (utilizando el script de paginaciónNO RECUERDA que sólo quería las noticias de le fecha elegida y las mezcla con todas las noticias de la base de datos.

2Cuando hago clic en Siguiente (utilizando el script de paginaciónel calendario del menú de saltodeja de mostrar la fecha elegida por lo que ya no me muestra de que fecha son las noticias que se están mostrandoEs decirtampoco RECUERDA cuál fue la fecha búsqueda.

3)No he podido lograr que cuando no haya resultadosno se muestre el menú de paginación (Anterior << 1 2 3 4 5 >> Siguientey que aparezca el mensaje “No se encontraron resultados en tu búsqueda”.

4)¿Qué pasaría si hay más de 1000 resultadosEl menú de paginación mostraría:


Anterior << 1 2 3 4 56789101112131415 ,16 …Hasta 1000 >> Siguiente

Esto sería muy engorroso por que no caben 1000 numeritos en el diseño de la página
Entoncescómo se le hace para que muestre de 5 en 5. Ejemplo:

Anterior << 1 2 3 4 5 >> Siguiente Anterior << 6 7 8 9 10 >> Siguiente Anterior << 11 12 13 14 15 >> Siguiente … etc
Seguiré intentando aún así ojalá algún valiente me pueda ayudar a resolver el problema.

Saludos y gracias

PD: Ya no puse el código por que era abusar con tanta información para un sólo POST en el foro , pero con gusto lo pongo si se necesita o se los envio por email o messenger.