[Php-avanzado] consulta query

Bruno Meschini brunomeschini en hotmail.com
Jue Ago 12 15:30:08 ART 2010


bueno leo, me quedo con la ultima opcion y ya esta funcionando...

en la query solo agrego max(A.fecha_sesion) AS ultima 
ests fecha la dinamito y la dejo en formato numerico (ejemplo 20100812), lo mismo hago con la fecha de hoy, 
y en el <td> donde tengo el boton registar asistencia pongo un if, si registro una asitencia el boton cambia a presente porque la fecha de la ultima sesion es igual ahoy,
muchas gracias, 
saludos
sigo laburando


> From: leonardot en pegasusnet.com.ar
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Date: Wed, 11 Aug 2010 18:36:15 -0300
> Subject: Re: [Php-avanzado] consulta query
> 
> Hola Bruno,
> 
> 	la primer opción te excluye a los que todavía no vinieron nunca, porque
> para ellos A.fecha_sesion es NULL
> 	Una solución es agregar como condición OR que A.fecha_sesion = NULL
> 	Ojo! Vas a tener que encerrar las condiciones entre paréntesis para que
> signifiquen lo que estamos hablando; algo así como
> 
> AND (A.fecha_sesion<'$fechahoy' OR A.fecha_sesion=NULL)
> 
> 	o más claramente todavía:
> 
> AND ((A.fecha_sesion<'$fechahoy') OR (A.fecha_sesion=NULL))
> 
> 	En el caso del LEFT JOIN, también deberías agregar que pueden ser
> nulos...
> 
> 	Otra solución que pensé en la respuesta pasada pero no te dije, es que
> la interfaz muestre a todos los de hoy, pero si A.fecha_sesion ==
> '$fechahoy', aparezca un "presente" en lugar del botón de tomar
> asistencia.
> 	Con esto mostrarías todos los del día, pero los que ya vinieron no se
> pueden volver a usar, a la vez que se ve el día completo siempre.
> 
> 	Saludos!
> 
> El mié, 11-08-2010 a las 18:54 +0000, Bruno Meschini escribió:
> > bien hay algo que no funciona,,,, estoy trabajando dos opciones...
> > 
> > la primera...
> > 
> > SELECT R.*, D.*, P.id_paciente, P.nombre, P.apellido,
> > count(A.id_rehabilitacion)AS presentes, A.fecha_sesion
> >                                         FROM (rehabilitaciones AS R,
> > dias_rehabilitaciones AS D, pacientes AS P)
> >                                         LEFT JOIN asistencias AS A ON
> > R.id_rehabilitacion= A.id_rehabilitacion
> >                                           WHERE R.id_rehabilitacion =
> > D.id_rehabilitacion
> >                                           AND R.id_paciente =
> > P.id_paciente
> >                                           AND D.id_dia=".$dia."
> >                                           AND (R.horario >='$h1') AND
> > (R.horario <= '$h2')
> >                                           AND (R.fecha_comienzo
> > <='$fechahoy')
> > 
> > 
> >                                            AND
> > A.fecha_sesion<'$fechahoy'
> > 
> > 
> >                                           GROUP BY A.id_rehabilitacion
> >                                           ORDER BY horario
> > 
> > 
> > 
> > Agregando este AND A.fecha_sesion<'$fechahoy'   la consulta me excluye
> > los pacientes que aun no tienen registros en asistencia, 
> > pero tienen que venir...
> > 
> > 
> > 
> > la segunda  entonces lo pongo en LEFT JOIN 
> > 
> > 
> > SELECT R.*, D.*, P.id_paciente, P.nombre, P.apellido,
> >                                count(A.id_rehabilitacion)AS presentes,
> > A.fecha_sesion
> >                                         FROM (rehabilitaciones AS R,
> > dias_rehabilitaciones AS D, pacientes AS P)
> >                                         LEFT JOIN asistencias AS A ON
> > R.id_rehabilitacion= A.id_rehabilitacion AND
> > A.fecha_sesion<'$fechahoy'
> >                                           WHERE R.id_rehabilitacion =
> > D.id_rehabilitacion
> >                                           AND R.id_paciente =
> > P.id_paciente
> >                                           AND D.id_dia=".$dia."
> >                                           AND (R.horario >='$h1') AND
> > (R.horario <= '$h2')
> >                                           AND (R.fecha_comienzo
> > <='$fechahoy')
> >                                           GROUP BY A.id_rehabilitacion
> >                                           ORDER BY horario
> > 
> > 
> > 
> > 
> > aqui solo me excluye la sesion cuya fecha coincide con el dia de hoy
> > pero me sigue listando el paciente 
> > 
> > 
> > 
> > 
> > > From: leonardot en pegasusnet.com.ar
> > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > Date: Wed, 11 Aug 2010 15:01:55 -0300
> > > Subject: Re: [Php-avanzado] consulta query
> > > 
> > > El mié, 11-08-2010 a las 16:46 +0000, Bruno Meschini escribió:
> > > > gracias leo, ahora lo agrego..
> > > 
> > > Después contanos...
> > > 
> > > > te escribi a tu mail hace unos dias,, parece que no lo viste,,,
> > ahora
> > > > te lo reenvio..
> > > 
> > > Ok. Lo busco...
> > > 
> > > > saludos,
> > > 
> > > =mente!
> > > -- 
> > > 
> -- 
> 
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20100812/385b98e9/attachment.htm 


Más información sobre la lista de distribución Php-avanzado