Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Un Select un poco complicado

Estas en el tema de Un Select un poco complicado en el foro de Mysql en Foros del Web. Hola amigos como estais, Vereis tengo este select que muestra las incidencias que estan entre el rando de horas que le paso "SELECT * FROM ...
  #1 (permalink)  
Antiguo 17/03/2011, 14:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Un Select un poco complicado

Hola amigos como estais,

Vereis tengo este select que muestra las incidencias que estan entre el rando de horas que le paso



"SELECT * FROM incidenciasusuarios WHERE NUsuario = ".$NUsuario." and FechaInicio <= '".$viernes."' and FechaFin >= '".$viernes."'and HoraInicio <= '".$array["Hora_inicio"]."' and HoraFin >= '".$array["Hora_fin"]."'"

La cosa es que si $array["Hora_inicio"] es mas pequeña que HoraInicio no la muestra.

Y si la $array["Hora_fin"] es mayor que HoraFin tampoco, creo que es por que no se estan cumpliendo las dos condiciones a la vez en el sql, pero no estoy seguro a ver si alguien lo ve con claridad.


La cosa de todo esto es que si hay una incidencia por ejemplo de 9 a 11, me la mueste si en algun momento esta cojiendo esas horas.


Si al rando de horas de 9 a 11 que es la supuesta incidencia le paso una hora de inicio de 8 a 10:10, me la muestre

Si le paso un rango de 9:30 a 10:30 me la muestre.

Si le paso un rango de 8 a 12 me la muestre.

Si le paso un rando de 10 a 12 tambien me lo muestre.



Espero explicarme con claridad, un saludo y gracias de ante mano

Última edición por franjgg; 17/03/2011 a las 14:36
  #2 (permalink)  
Antiguo 17/03/2011, 18:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Un Select un poco complicado

Nadie tiene idea de como poder conseguirlo amigos?
  #3 (permalink)  
Antiguo 17/03/2011, 18:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Veracruz
Mensajes: 92
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Un Select un poco complicado

Pues la condición AND forza a que se cumplan tus condiciones, entonces por ejemplo si $array["Hora_inicio"] es más pequeño que Horainicio no te lo mostrara porque le dices que Horainicio forzosamente debe ser menor.

Yo pienso que deberías hacer la siguiente consulta:

SELECT * FROM incidenciasusuarios;

y ya los resultados los vas condicionando con PHP
  #4 (permalink)  
Antiguo 17/03/2011, 18:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Un Select un poco complicado

Hola amigo, gmurop gracias por tu atencion,

La cosa de hacerlo asi es que tiene muchas incidencias y estamos seleccionandolas todas para despues hacer una criba.

Lo ideal seria hacerlo desde sql para solo seleccionar las pocas que coincidan
  #5 (permalink)  
Antiguo 17/03/2011, 19:00
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Un Select un poco complicado

Prueba separando las condiciones con parentesis.


"SELECT * FROM incidenciasusuarios WHERE NUsuario = ".$NUsuario." and (FechaInicio <= '".$viernes."' and FechaFin >= '".$viernes."') and (HoraInicio <= '".$array["Hora_inicio"]."' and HoraFin >= '".$array["Hora_fin"]."')"
  #6 (permalink)  
Antiguo 17/03/2011, 19:51
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Un Select un poco complicado

Hola amigo lenincasco gracias por tu ayuda,

Acabo de probar tu sql y funciona mejor, solo falla en que si la hora de inicio de la incidencia es mayor que la hora de inicio que le paso, , o la hora fin es menor que la hora que le paso no me muestra la incidencia.

Un saludo y de nuevo mil gracias amigo

Última edición por franjgg; 17/03/2011 a las 20:09

Etiquetas: select
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 20:23.