Foros del Web » Programando para Internet » PHP »

Eliminar registros..

Estas en el tema de Eliminar registros.. en el foro de PHP en Foros del Web. Tengo una tabla en una base de datos con determinada información, deseo que cuando alguien ingrese a una página especifica, mi script tome la fecha ...
  #1 (permalink)  
Antiguo 07/09/2004, 14:15
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Eliminar registros..

Tengo una tabla en una base de datos con determinada información, deseo que cuando alguien ingrese a una página especifica, mi script tome la fecha del dia... y se puedan eliminar los registros que estan quince dias atras...

pero no se bien como hacer el select...

alguna idea???
  #2 (permalink)  
Antiguo 07/09/2004, 14:39
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 13 años, 11 meses
Puntos: 0
Hola Salome:
Pues mas bien no sería un SELECT sino un DELETE FROM

Quedaría algo asi:

$limite = (time()-(60*60*24*15)) // Declaramos el limite de tiempo a 15 días.

$sql = "DELETE FROM tabla WHERE fecha < $limite";


Espero te sirva y lo comprendas, sino expone tus dudas.
Saludos.
  #3 (permalink)  
Antiguo 07/09/2004, 14:48
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
mmmm este

cuando hago esto... (time()-(60*60*24*15)) aca hablas de time.. pero si necesito date???... o es igual.. no entiendo.
  #4 (permalink)  
Antiguo 07/09/2004, 15:06
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 13 años, 11 meses
Puntos: 0
Lo que te entrega time() es el UNIX timestamp actual, o sea, es la representacion de la fecha actual pero en segundos, ellos estan calculados desde el 1 del 1 de 1970, por ejemplo si haces un echo date("d-m-Y H:i:s", time()); veras la fecha actual con formato.

Si deseas operar con fechas es una buena práctica que las guardes como timestamp en la BD y asi es más fácil manipularlas. Como en el ejemplo que te hice, con ellos consigues que de inmediato se eliminen los registros cuyo campo fecha tengan un valor anterior a 15 días.



Saludos
  #5 (permalink)  
Antiguo 07/09/2004, 15:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. habría que ver que tipo de campo ha de ser esa FECHA ..

En principio no has de trabajar las fechas en UNIX timestamp ... por qué para eso toda BD tiene sus campos tipo DATE o DATETIME (como Mysql) y sus funciones para trabajar con fechas .. eso sí, eso implica trabajar un poco más con SQL pero hace tu código más versatil, portable y optimo si aprovechas las funciones de tratamientos de fechas:

Por ejemplo .. la fecha actual (con hora) sería cosa de usar NOW() (para campos de fecha tipo DATETIME con fecha y hora) o CURDATE() si usas campos de Fecha sólo de Mysql:
INSERT INTO tabla (id,fecha) VALUES ('',NOW())

Y para borrar ..
DELETE FROM tabla WHERE DATE_SUBB(CURDATE(), INTERVAL 15 DAY) <= DATE(fecha)

Y el campo fecha tipo DATETIME o DATE

más info y detalles:
http://dev.mysql.com/doc/mysql/en/Da...functions.html

Un saludo,

Última edición por Cluster; 07/09/2004 a las 15:23
  #6 (permalink)  
Antiguo 07/09/2004, 15:31
 
Fecha de Ingreso: enero-2004
Ubicación: Santiago
Mensajes: 127
Antigüedad: 13 años, 11 meses
Puntos: 0
Si tienes razón, unicamente pretendia darle una rápida solucion a Salome y si seguia preguntando me iba a meter con las funciones propias para el tratamiento de fechas.

No pretendia de ningún modo saltarme esto tan importante, eso si no exponerselo de una ... bueno, mal que mal tendra que aprender a utilizarlas ya que para ello están.


Saludos y gracias que hasta yo me he acordado de algunas cosas.
  #7 (permalink)  
Antiguo 07/09/2004, 15:37
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Gracias a los dos!!!
  #8 (permalink)  
Antiguo 07/09/2004, 15:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No hay problema HiperJP .. como dice Josemi: "pregunta a un grupo de programadores sobre una solución y obtendras mil válidas" (o algo así decía el refran xDD)

Un saludo,
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 23:09.