Foros del Web » Programando para Internet » PHP »

eliminar automaticamente registro cada 3 meses

Estas en el tema de eliminar automaticamente registro cada 3 meses en el foro de PHP en Foros del Web. buenas a todos, tengo una base de datos en la que voy guardando ofertas de un producto. este producto tiene una fecha de alta. quiero ...
  #1 (permalink)  
Antiguo 15/06/2009, 05:01
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
eliminar automaticamente registro cada 3 meses

buenas a todos,

tengo una base de datos en la que voy guardando ofertas de un producto. este producto tiene una fecha de alta.

quiero hacer un script que se ejecute automaticamente y elimine todos los registros de la base de datos cuya fecha sea mayor a 3 meses.

como puedo hacerlo?

saludos
  #2 (permalink)  
Antiguo 15/06/2009, 05:12
 
Fecha de Ingreso: abril-2008
Mensajes: 32
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: eliminar automaticamente registro cada 3 meses

Hola,

puedes probar algo así:

Código:
delete from tabla_productos
where fecha_producto < (DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 90 DAY),'%Y-%m-%d'))
Espero que te sirva.
  #3 (permalink)  
Antiguo 15/06/2009, 05:41
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

buenas aeloco,

no acabo de entender la sentencia SQL, que dice exactamente?

y se te ocurre de que forma podriamos hacerlo para que se borren las ofertas de productos insertadas hace más de 3 meses? tendriamos que hacer algun script diario o asi?

saludos y gracias!
  #4 (permalink)  
Antiguo 15/06/2009, 05:57
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: eliminar automaticamente registro cada 3 meses

Código:
delete from tabla_productos
where fecha_producto < (DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 90 DAY),'%Y-%m-%d'))
La consulta del senor aeloco.
Especifica que elimine todo los producto que esten dentro de un intervalo menor de 90 dias es decir 3 meses, me parece que es lo que andas buscando.


fecha_producto Es la fecha en la que se inserto el producto.

Puedes programar una tarrea en tu sistema para que ejecute este codigo.
  #5 (permalink)  
Antiguo 15/06/2009, 06:11
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

gracias compañeros,

estpoy ejecutando la consulta des del mismo phpMyAdmin. primero voy a hacer un SELECT para ver si me devuelve los valores de hace tres meses. he hecho lo siguiente:

Código PHP:

SELECT 
FROM productos
where fecha 
< (DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 90 DAY),'%Y-%m-%d'))

y me da como resultado las inserciones de hoy dia 2009-15-06 incluidases decirme devuelve las 500 inserciones que hay en productos
que hago mal?

saludos!
  #6 (permalink)  
Antiguo 15/06/2009, 06:19
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: eliminar automaticamente registro cada 3 meses

1- Verifica el formato de tu fecha el senor aeloco utiliza
Year - mes - dias.

2- el query dice que consulte todo los producto lo cuales hallan sido insertados en menos de 90 dias desde la fecha en que se insertaron ala fecha actual no hay 90 dias por eso te genera esos 500 registros.
  #7 (permalink)  
Antiguo 15/06/2009, 07:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 118
Antigüedad: 15 años, 11 meses
Puntos: 6
Respuesta: eliminar automaticamente registro cada 3 meses

en este tipo de casos, si tu base de datos esta muy trillada, vamos que hay consultas por todos lados, en estos casos lo mejor creo es almacenar junto a cada producto un campo con el time() de cuando fue añadido, de esta manera la consulta quedaria
Código PHP:
$tiempo_limite=time()-60*60*24*90;
"delete from productos where tiempo_insercion < $tiempo_limite" 
la consulta se ejecutaria bastante mas rapido que con el ejemplo anterior
  #8 (permalink)  
Antiguo 15/06/2009, 09:15
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

buenas kristt,

creo que la bd no esta muy trillada. o eso creo. poner un campo time me dificulta, ya qye intento tocar lo minimo de estructura.

gix2, no acabo de entenderte. el campo date que tengo en la base de datos esta estipulado como 0000-00-00. el valor que me devuelve es y/m/d, y yo posteriormenten codifico la variable a una fecha más española.

como lo hago? quiero que me diga, con el select, aquellos productos que hace más de 3 meses que estan introducidos. es decir, productos que no se van modificando.

saludos!
  #9 (permalink)  
Antiguo 15/06/2009, 09:32
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: eliminar automaticamente registro cada 3 meses

y porke no lo haces con cron jobs?

si tienes en tu tabla ofertas la fecha de alta o de "eliminacion" simplemente has esto en un script php

Código PHP:
<?php
//FECHA ACTUAL
$fecha_actual=strftime("%Y-%m-%d"time());

$sql="DELETE FROM oferta WHERE fecha_alta='$fecha_actual'";
mysql_query($sql,$c);
?>
y luego programas tu cron job cada 3 meses y fin
__________________
Quitenme la vida pero no la bebida.
  #10 (permalink)  
Antiguo 15/06/2009, 09:43
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

buenas cesarpunk,

no he entendido tu script. si ejecuto tu script, me da los resultados de los productos insertados o actualizados hoy. pero lo que quiero es borrar los anteriores a 3 meses.

que es eso del cron job¿

saludps
  #11 (permalink)  
Antiguo 15/06/2009, 09:54
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: eliminar automaticamente registro cada 3 meses

Entonces lo que debes hacer es un query que te arroje los productos que tienen una fecha 3 meses menos que hoy dia (o fecha actual), creo que ese trata el query que te mando aeloco. y simplemente pones ese query en un script php para que lo ejecute el cron job

Y el cron job significa tareas programadas, esas opciones lo puedes encontrar en el panel que te brinda tu proveedor de servicios de hosting donde tienes alojado tu web, simplemente programas la hora, dia y mes en la que quieres que ejecute el script que deseas.
__________________
Quitenme la vida pero no la bebida.
  #12 (permalink)  
Antiguo 15/06/2009, 10:26
 
Fecha de Ingreso: enero-2009
Mensajes: 212
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: eliminar automaticamente registro cada 3 meses

Si pones una pagina con esto que te sale :

Cita:
<?php
$fecha = date("Y-m-d",time() - 7776000);
$sql="DELETE FROM oferta WHERE fecha_alta < '$fecha'";
mysql_query($sql,$c);
?>
Fecha es la fecha actual menos 7776000 segundos que si mi cuenta no estan mal ( que puede ser compruébalo ) son 90 días.

Mírate eso que te muestra, si es los datos que quieres borrar pues haces un cron que se ejecute diariamente y listo
__________________
Juega al ajedrez online :http://www.davchess.com
Tecnicas de Ajedrez:http://www.7chess.com
  #13 (permalink)  
Antiguo 15/06/2009, 11:08
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

buenas davchess,

tu script funciona perfectamente, es decir, he hecho un select y me muestra los productos con más de 3 meses de antiguedad. perfecto.

ahora el segundo paso, como hago lo del cron para que se ejecute automaticamente?

saludos!
  #14 (permalink)  
Antiguo 15/06/2009, 11:25
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: eliminar automaticamente registro cada 3 meses

tu web esta en cpanel? si puedes ingresar ahi, busca las opciones cron jobs
__________________
Quitenme la vida pero no la bebida.
  #15 (permalink)  
Antiguo 15/06/2009, 11:31
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: eliminar automaticamente registro cada 3 meses

que es cpanel? tengo un hosting, pero no se llama cpanel.

de que manera se configura?

saludos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:39.