Foros del Web » Programando para Internet » PHP »

Auto limpieza

Estas en el tema de Auto limpieza en el foro de PHP en Foros del Web. hola estoy haciendo un pequeño programa en donde quiero que los datos que se guarden en la base de datos tengan fecha de caducidad, es ...
  #1 (permalink)  
Antiguo 07/03/2006, 00:08
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 5 meses
Puntos: 3
Auto limpieza

hola

estoy haciendo un pequeño programa en donde quiero que los datos que se guarden en la base de datos tengan fecha de caducidad, es decir que despues de x tiempo se borren de la misma base. esto es posible?, ¿es posible hacerlo automáticamente? la verdad no se me ocurre como.

ojalá alguien pueda ayudarme.
  #2 (permalink)  
Antiguo 07/03/2006, 06:37
Avatar de :_DaMMiaN_:  
Fecha de Ingreso: agosto-2005
Ubicación: En una shell
Mensajes: 15
Antigüedad: 18 años, 8 meses
Puntos: 0
A mi, se me ocurren dos posibilidades:

Primera : Es generar una pagina parasito, que se encarge de esta comprobacion.

¿y porque parasito?

Bueno porque deberas enlazarla con alguna pagina que sea la principal. Entonces cuando alguien visite tu web, esta pagina hara su trabajo en segundo plano, sin que tu o el usuario se percaten, claro esta que si tienes 100 visitas diarias, no haras 100 comprobaciones, ahi solo debes mejorar un poco la idea y generar un flag que le indique a la pagina parasito que la comprobacion del dia ya se hizo y no la haga denuevo.

Segunda : Esta es mas compleja, ya que necesitaras el control del server. Bueno esta idea consiste en generar un programilla o un script que se conecte a esta pagina que hace el trabajo de limpieza, claro esta que deberas usar otras herramientas que no son web, como cron o at.

Bueno espero que sirva de algo, si no ..... Perdi 5 minutos de mi vida :)
__________________
El que al mundo vino y no uso Linux... a que chucha vino

WWW.OSMWEB.CL
  #3 (permalink)  
Antiguo 07/03/2006, 06:38
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Si es posible hacerlo, debes guardar cada registro de cada tabla con un campo de fecha.
Que sistema operativo usas?
Que base de datos?
  #4 (permalink)  
Antiguo 07/03/2006, 16:48
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 5 meses
Puntos: 3
dammian si lo entendí intentare probar la primera opción que es la que por mis limitaciónes técnicas podría implementar... muchas gracias.


claudiovega olvide lo más importante!! mi servidor es un apache (1.3.34) sobre linux y la base de datos es MySQL (4.0.25-standard), php (4.4.2) aunque puedo correr php 5 ...

y los registros de las tablas ya tienen un campo de fecha (datetime), imagino que existe algo parecido a las cokies que tienen una fecha de caducidad ¿no es así?

gracias.
  #5 (permalink)  
Antiguo 08/03/2006, 06:27
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Puedes hacer un script php o en otro lenguaje, que se conecte a la base de datos y haga la limpieza, podría contener código sql como este (ejemplo php):

Código PHP:
<?php
   mysql_query
("delete from tabla where datediff(fecha,now())>numero_dias;");
?>
Y este script podrías llamarlo diariamente porgramando un cron job.
  #6 (permalink)  
Antiguo 08/03/2006, 08:09
Avatar de fulfaro  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 58
Antigüedad: 19 años, 2 meses
Puntos: 0
De acuerdo Otra Opcion

Hola,

Otra opcion que puedes utilizar es crear la funcion en el servidor de MySQL, y solo desde tu pagina llamas a esta funcion. Lo recomendable es lo que te mencionaron anteriormente, apenas un usuario entra a la pagina se comprueba si se realizo la limpieza hoy, sino hay que hacerla llamando a esta funcion.

Suerte...!!!
__________________
Juan Carlos Romero
§§ JCRF §§

"Si el hombre fuese constante sería perfecto" SHAKESPARE
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 12:01.