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

Consulta de disponibilidad

Estas en el tema de Consulta de disponibilidad en el foro de Mysql en Foros del Web. Hola amigos , Un cliente me ha pedido un formulario en el que el usuario introduce los siguientes datos: ENTREGA: - Lugar - Fecha - ...
  #1 (permalink)  
Antiguo 29/11/2014, 11:17
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años, 7 meses
Puntos: 1
Consulta de disponibilidad

Hola amigos ,

Un cliente me ha pedido un formulario en el que el usuario introduce los siguientes datos:

ENTREGA:

- Lugar
- Fecha
- Hors

DEVOLUCIÓN:

- Lugar
- Fecha
- Hora

Bueno, al hacer click en buscar coches, le aparece una página en la que sale la lista de coches que hay disponibles, he hecho una tabla en la base de datos llamada 'Vehículos ocupados', en la que pongo:

- id_vehículo
- sede
- fecha_entrega
- hora_entrega
- fecha_devolucion
- hora_devolucion

Y quisiera que si rellenan el formulario y el vehículo está ocupado, que no lo muestre.

Detalle por si necesitais: Tengo otra tabla de vehículos con el listado, pero es de características y a cerca del coche.

Solo necesitaría la sentencia SQL, ya que luego con un if compruebo si existe la fila, en caso de que no exista sería que para ese rango de fechas está disponible.

Muchísimas gracias :) Un saludo.
  #2 (permalink)  
Antiguo 29/11/2014, 19:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta de disponibilidad

Cita:
Solo necesitaría la sentencia SQL, ya que luego con un if compruebo si existe la fila, en caso de que no exista sería que para ese rango de fechas está disponible.
Nop...
Lo que tienes que hacer es una consulta entre ambas tablas usando INNER JOIN.
Es algo que puedes ver en cualquier tutorial, pero será tu trabajo. Nosotros podemos guiarte para corregirla, pero no regalamos códigos.

Muéstranos cómo lo escribirías tu, y veremos si estás bien encaminado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/11/2014, 04:59
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Consulta de disponibilidad

Hola gnzsoloyo :) ,

Antes de nada, muchas gracias por la respuesta :) , según he leído INNER JOIN sirve para unir tablas, creo que se por donde vas, yo lo tengo hecho de otra manera, lo que hago es esto:

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Lo que tu te refieres creo que sería meterlo en la consulta del while, si me equivoco corrigeme, también quiero decir que no soy experto en SQL, sé ALTER TABLE, SELECT, DELETE, INSERT, y poco más, por lo que no hace falta que me lo escribais entero, pero un poco que sea similar a lo que busco explicandome un poco como funciona sí, eso lo agradecería ya que de otra manera se me hace un mundo, pero muchas gracias por ayudarme y un saludo :)

Última edición por gnzsoloyo; 30/11/2014 a las 07:00 Razón: Se me ha olvidado decir que está mal el que hize porque entre otras cosas solo mira si está en el rango de fechas
  #4 (permalink)  
Antiguo 30/11/2014, 07:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta de disponibilidad

Vamos por el principio: MySQL no es PHP, ni tiene nada que ver con PHP, así como PHP tampoco es parte ni está emparentado con MySQL. Son sistemas diferenciados.
MySQL es un Sistema de Gestion de Bases de Datos o DBMS, que es accedido por diferentes lenguajes a través de recursos de esos lenguajes, pero es un servidor.
MySQL, lo mismo que otros DBMS sólo entiende SQL y una serie de extensiones al mismo, pero no interpreta otros lenguajes.

Las normas del foro (leelas por favor), expresamente dicen que no se tratan temas de programación en los foros de BBD. De ese modo mantenemos la coherencia de los temas y sus tratamientos, y tu no desperdicias el tiempo preguntando cosas en el foro equivocado, en especial porque usar MySQL no implica obligatoriamente usar PHP, y ni siquiera se necesita programar en ningun lenguaje. Además, los expertos en PHP están en el foro de PHP.

Dicho esto, y yendo a tu problema, lo que te dije de INNER JOIN no aplica a PHP. Estoy hablando de SQL puro, y según lo que posteaste sería así:

Código SQL:
Ver original
  1. SELECT * FROM vehiculos V INNER JOIN vehiculos_ocupados VO ON V.id = VO.id_vehiculo
  2. WHERE id_vehiculo = 24
  3.     AND sede = 1
  4.     AND fecha_entrega <= '2014-12-10'
  5.     AND hora_entrega < '18:00:00'
  6.     AND fecha_devolucion >= '2014-12-03'
  7.     AND hora_devolucion >= '17:59:59'
  8. ORDER BY grupo, fecha_entrega, hora_entrega;

Hacer múltiples consultas para algo que la base de datos puede resolverlo con una única consulta, es ineficiencia. El SQL tiene muchísimos recursos para procesar datos que son mejores que tiene un lenguaje de programación, porque fue diseñado para eso.
Cada cosa tiene su ámbito de dominio. Hay cosas que podría hacer la base que el lenguaje de programación las hace mejor, y otras donde el dominio del DBMS es absoluto. La experiencia y los manuales te pueden ayudar a decidir que cosa se hace en donde.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/11/2014 a las 07:17
  #5 (permalink)  
Antiguo 30/11/2014, 12:04
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Consulta de disponibilidad

Hola gnzsoloyo ,

Entendido, he estado hechando un ojo al código, pero si no aplica a php no me sirve, ya que yo uso php, de todos modos gracias, si tuvieras algún otro método que me sirva para php te agradecería que me lo comentaras, un saludo y gracias de verdad :)
  #6 (permalink)  
Antiguo 30/11/2014, 12:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta de disponibilidad

Creo que no has entendido...
Si usas ese tipo de consultas, llamandolas desde el lenguaje que quieras, obtendrás los datos que necesitas sin tener que hacer códigos sucios en ese lenguaje.
¿Se entiende?

Si quieres ver cómo se implementa esa consulta que te propongo en PHP, te paso el post al foro de PHP para poder continuar con esa parte, ya que como dicen las normas del foro, es OFF TOPIC en este foro...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: disponibilidad, sql, tabla
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 00:12.