Foros del Web » Programando para Internet » PHP »

Eliminar registro en 7 dias

Estas en el tema de Eliminar registro en 7 dias en el foro de PHP en Foros del Web. Hola amigos Una vez mas los molesto con otra duda Quiero saber como eliminar un registro automaticamente cuando pasen 7 dias: Aqui les dejo el ...
  #1 (permalink)  
Antiguo 22/06/2005, 10:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 53
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Eliminar registro en 7 dias

Hola amigos

Una vez mas los molesto con otra duda

Quiero saber como eliminar un registro automaticamente cuando pasen 7 dias:

Aqui les dejo el codigo :

Código PHP:
<html>
<head><title>Anuncios .::Coatepec::.</title></head>
<body>
<SCRIPT LANGUAGE="jAVASCRIPT">
function nuevo_anuncio(){
window.open("anuncios/insertar.php","nuevo","toolbar=no, location=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=400 height=350")
}  
</SCRIPT>
<h1 align=center><i>ANUNCIOS</i></h1>
<h2 align=center><a href="javascript:nuevo_anuncio();">Click aqui para agregar nuevo anuncio</a></h2>
<?
$link 
mysql_connect("localhost","usuario","contraseña");
mysql_select_db("db",$link);
$result mysql_query("SELECT Nombre,Email,Texto,ID,Lugar,fecha FROM anuncios ORDER BY fecha DESC"$link);
echo 
"<table border = '1' bordercolor='black' width='90%' align='center' bgcolor='#555555'>";
while (
$row mysql_fetch_row($result)){
echo 
"<tr> \n";
echo 
"<td align='center' bgcolor='#68abd6' width='45%'><p align='center'>$row[2]</p></td> \n";
echo 
"<td width='45%'><b> \n";
echo 
date('d-m',$row[5]);
echo 
"</b><br> \n";
echo 
"<font color='#c9c9c9'><b>Nombre:&nbsp;</b></font>$row[0]<br> \n";
echo 
"<font color='#c9c9c9'><b>Lugar:&nbsp;</b></font>$row[4]<br> \n";
echo 
"<font color='#c9c9c9'><b>E-Mail:&nbsp;</b></font>$row[1]<br></td> \n";
echo 
"</tr> \n";
}
echo 
"</table> \n";
?>
</body>
</html>
gracias a todos.
  #2 (permalink)  
Antiguo 22/06/2005, 11:04
 
Fecha de Ingreso: septiembre-2003
Ubicación: Sentado frente a un computador
Mensajes: 191
Antigüedad: 14 años, 3 meses
Puntos: 0
hola como estas.

lamentablemente,php no trabaja con tiempo, es decir, no le puedes decir elimina esto en 7 dias por favor :)

lo debes hacer a traves del servidor, si ocupas windows es el programador de tareas, si ocupas linux es el comando CRON, o puedes hacer un programa en algun lenguaje que te corra como un demonio, pero es lo mismo que las opciones anteriores, para que vamos a reinventar la rueda.

luego con estos comandos, "lanzas" una a pagina o un comando directamente a tu base de datos.

espero que te sirva.
  #3 (permalink)  
Antiguo 22/06/2005, 12:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Guatemala
Mensajes: 72
Antigüedad: 14 años, 1 mes
Puntos: 0
Como decía dark_goldviper PHP no hace eso. No soy un experto pero se me ocurrio esto:

y si a cada registro le pones un campo de fecha de vencimiento que seria la fecha en que se esta creando el registro mas 7 días y con una funcion en otra pagina php elimines todos los registros que esten ya vencidos y esto lo ejecutas periodicamente....

ejemplo del codigo:

Código PHP:
$link mysql_connect("localhost","usuario","contraseña"); 
mysql_select_db("db",$link); 
$result mysql_query("delete from anuncios where fechavencimiento<curdate()" 
Espero te sirva... y perdona si no te funcionara pero no probe el codigo...

Espero haber podido ayudarte....
  #4 (permalink)  
Antiguo 22/06/2005, 12:16
 
Fecha de Ingreso: noviembre-2003
Ubicación: Guatemala
Mensajes: 72
Antigüedad: 14 años, 1 mes
Puntos: 0
haaaa! y se me olvidaba, que en el query conde muestras los registros tambien le agregas el "fechavencimiento<curdate()" para que te muestre solo los registros vigentes si es que no los has eliminado...
  #5 (permalink)  
Antiguo 22/06/2005, 12:38
 
Fecha de Ingreso: mayo-2005
Mensajes: 53
Antigüedad: 12 años, 6 meses
Puntos: 0
Voy a intentarlo, gracias. Si alguien se le ocure algo mas por favor aganmelo llegar
  #6 (permalink)  
Antiguo 23/06/2005, 04:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... De acuerdo.. PHP no es el encargado de eliminar registros de la BD... pero tampoco lo es CRON JOB ...

Separando las cosas... CRON JOB (LINUX) ó el Programador de Tareas (equivalente para Win$) son programas que lo ue hacen es ejecutar otras acciones en un momento determinado (exácto)... así pués podrías ejecutar un script PHP todos los días a la media noche.. por ejemplo... pero hasta ahí.

¿Quién se encarga de borrar registros??; SQL!. Con PHP no puedes manipular la BD.. solo envias sentencias (querys) para que se ejecuten... hasta ahí... cosa aparte es que lo que la query --SQL-- haga (borrar, consultar, insertar....) y que esté bien planteada (tiene su propia sintaxis)...

Biien, la query que te pasaron es correcta... basandote en que guardas un campo de vencimiento... entonces tendrías que preocuparte de calcular al insertar ese periodo de vencimiento... funciona... pero igual funciona al revés; Guardar la fecha --hora de ser necesario-- al insertar y que la query de borrado calcule el periodo.. ésta última sería algo así:
Código:
DELETE FROM tabla WHERE campo_feccha<DATE_SUB(CURDATE(), INTERVAL X DAY)
donde "campo_fecha" tiene la fecha de registro y "X" represeta el número de días del periodo... ¿ventajas de esto? con un solo campo basta... todo depende de lo que requieras...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 13:38.