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

hacer expirar un dato

Estas en el tema de hacer expirar un dato en el foro de Bases de Datos General en Foros del Web. uso BD mysql y php. Tengo las siguientes tablas: ocupacióestat: A1, A2, A3, A4, A5, A6, A7...... (esto son sillas que tienen de valor 2 ...
  #1 (permalink)  
Antiguo 12/08/2004, 03:56
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
hacer expirar un dato

uso BD mysql y php.
Tengo las siguientes tablas:

ocupacióestat:
A1, A2, A3, A4, A5, A6, A7...... (esto son sillas que tienen de valor 2 si estan compradas y 1 si no estan compradas)

Compra:
ID, sillas, Fecha(en modo datetime)

como puedo hacer para que cuando el campo Fecha haya expirado (hayan passado 20 minutos) las sillas de "ocupacioestat" que estan en el campo sillas de compra vuelvan al valor inicial 1.

Gracias por adelantado
  #2 (permalink)  
Antiguo 12/08/2004, 05:35
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Programación, pura programación, no te queda más remedio. Todo pasa por preparar un proceso que chequee los datos para hacerlo, o bien de manera periódica (con un proceso cron) o bien cuando se consulte o se haga algo en el programa.
La instrucción a ejecutar es muy simple, pero hay que lanzarla.
Un saludo.
  #3 (permalink)  
Antiguo 12/08/2004, 06:51
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
si, ok, ya tengo preparado donde meter la secuencia el problema es que no se como decir que cuando hayan passado 20 minutos.... si me puedes ayudar con el if supongo que sabré hacer el resto.
  #4 (permalink)  
Antiguo 12/08/2004, 14:00
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
No tienes que hacer ningún if, en la sentencia sql, en la where del update le pones la condición de que la fecha actual menos la fecha del registro sea mayo que el tiempo de caducidad.
Un saludo.
  #5 (permalink)  
Antiguo 12/08/2004, 14:12
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Por cierto, la expresión "now() - campo_datetime" te da el resultado en segundos.
Un saludo.
  #6 (permalink)  
Antiguo 16/08/2004, 06:49
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
i como hago para meterle 20 minutos al now?
  #7 (permalink)  
Antiguo 14/10/2004, 14:22
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 21 años
Puntos: 0
hola amigos:

como puedo saber los minutos que tiene un registro almacenado en la BD y despues que expire este registro???
__________________
Practicando se Aprede
:-) :-)
  #8 (permalink)  
Antiguo 15/10/2004, 04:41
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
El tiempo que devuelve el now(), es en segundos, con lo que para sumarle minutos, pues tienes antes que pasarlos a segundo. Por ejemplo, y perdón a TCL_ZIP por no contestarle en su momento, no recuerdo haber visto este mensaje, sería: now() + 20*60=now()+1200.
Un saludo.
  #9 (permalink)  
Antiguo 15/10/2004, 10:44
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 21 años
Puntos: 0
gracias vice por tu respuesta ya ke = me intereza pero la duda ke tengo esto va en la consulta sql, si es asi como seria la consulta.

__________________
Practicando se Aprede
:-) :-)
  #10 (permalink)  
Antiguo 20/10/2004, 01:40
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 20 años, 4 meses
Puntos: 0
Cita:
Iniciado por Vice
El tiempo que devuelve el now(), es en segundos, con lo que para sumarle minutos, pues tienes antes que pasarlos a segundo. Por ejemplo, y perdón a TCL_ZIP por no contestarle en su momento, no recuerdo haber visto este mensaje, sería: now() + 20*60=now()+1200.
Un saludo.
¡Ojo! que NOW() devuelve la fecha y la hora actual con formato 'YYYY-MM-DD HH:MM:SS' o 'YYYYMMDDHHMMSS', dependiendo de si la función está utilizada en una cadena o un contexto numérico. Si lo deseas en segundos deberás hacer UNIX_TIMESTAMP(NOW()).

Saludos

Última edición por HiperJP; 20/10/2004 a las 01:44
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 16:51.