Foros del Web » Programando para Internet » PHP »

Búsquedas en arrays multidimensionales

Estas en el tema de Búsquedas en arrays multidimensionales en el foro de PHP en Foros del Web. Muy buenas, a ver si alguien me puede echar un cable: Quiero hacer un calendario enlazado a una tabla de citas, que cuando haga rollover ...
  #1 (permalink)  
Antiguo 23/02/2005, 12:20
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (España)
Mensajes: 134
Antigüedad: 19 años, 3 meses
Puntos: 0
Búsquedas en arrays multidimensionales

Muy buenas,

a ver si alguien me puede echar un cable:

Quiero hacer un calendario enlazado a una tabla de citas, que cuando haga rollover por un día en el que hay una cita me aparezca una capa flotante con el título de la cita.

Para ello, al pintar el calendario del mes, hago un recordset de la tabla y obtengo los registros de ese mes. Del campo fecha, elimino la información del mes y del año y me quedo sólo con el día, para luego comparlo con los días del calendario al pintar el calendario.

Todo ello lo meto en un array multidimensional (quizá no es eso lo que debería hacer, pero no se me ocurre otra solución)

El array me queda así;

| 4|Cita 1|417|
| 9|Cita 2|418|
|12|Cita 3|419|
|17|Cita 4|420|
|24|Cita 5|421|

La primera columna es el dia del mes de la cita, la segunda el titulo y la tercera el idRegistro (lo necesito para hacer el link al detalle de la cita)

Suponiendo que este sistema de multi array sea el adecuado para este tema, la pregunta es: ¿Se puede hacer una búsqueda en la primera columna únicamente del array?. He encontrado funciones que buscan en todo el array, pero esto me puede dar problemas.
Lo que quiero hacer es, que cuando pinto el calendario, me busque cada dia que voy pintando: 1, 2, 3... y cuando llega al 4, al 9 etc. ya que son días con noticia, pues que me monte la capa flotante con el detalle de la cita. Teniendo el dia (columna1) imagion que podré acceder a las otras columnas, aunque aun no lo he probado.

Resumiendo: Si alguien ha montado un calendario de este tipo y cree que esta no es la mejor manera, a ver si me puede dar una alternativa.

Si ya voy bien así, querría saber como buscar únicamente en la primera columna de mi multi array.

Muchas gracias y disculpad por lo extenso del tema.
  #2 (permalink)  
Antiguo 24/02/2005, 06:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. si trabajas con Base de datos .. para que necesitas generar un array extra? .. En teoría tu calendario lo tendrías que generar en función de los datos de tu BD ..

Sobre el tema de buscar en arrays multidimensionales .. en principio (y como solución a la rápida) deberías recorrer tu array con un bucle de principio a fin y de ahí aplicar tu "if()" para hacer la comparación de lo que buscas ...

Un saludo,
  #3 (permalink)  
Antiguo 25/02/2005, 03:25
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (España)
Mensajes: 134
Antigüedad: 19 años, 3 meses
Puntos: 0
Quizá no necesito la array, es que no se como solucionarlo.

Me podrías explicar como enlazar los dias del calendario con los registros?
Te explico, abro la página y me genera el calendario del mes en curso a partir de la fecha de hoy. A partir de la fecha de hoy, averiguo el primer y último día del mes. Con esos dos días, hago una query de las citas de ese mes.

Mi problema es como enlazar al pintar el calendario, el día 1 con las citas del dia 1/2/2005, el día 7 con las citas del día 7, etc etc.

No sé si me explico. Seguro que es muy fácil pero no caigo en la solución. Lo del array multidimensional era una idea que se me ocurió para solucionarlo, pero si crees que no vale la pena, pues fuera.

Otra solución que se me ocurre pero debe ser muy cara a nivel de procesador es hacer una query al pintar cada uno de los días del calendario. Es decir, pinto el dia 1 y busco los registros de día 1, pinto el día 2 y busco los del dia 2, etc etc, pero eso son 30 querys cada vez que pinto un calendario, lo cual me parece no muy profesional.

Puedes asesorarme

Un saludo y muchas gracias
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 15:04.