Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Borrar dato vencido

Estas en el tema de Borrar dato vencido en el foro de PHP en Foros del Web. Hola a todos, queria saber como el la logica para trabajar con fechas ya que quiero eliminar datos de una tabla que superen los 30 ...
  #1 (permalink)  
Antiguo 31/01/2014, 17:07
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Pregunta Borrar dato vencido

Hola a todos, queria saber como el la logica para trabajar con fechas ya que quiero eliminar datos de una tabla que superen los 30 dias.

Código PHP:

$fechaven 
30;

$sqldelete $con->query("DELETE * FROM job WHERE date > $fechaven");

echo 
$sqldelete
No borra nada y nose y creo que el problema es la variable $fechaven. En la tabla guardo la fecha de ingreso asi: 29.12.13

Bueno espero me ayude... gracias
__________________
Zreep
  #2 (permalink)  
Antiguo 31/01/2014, 17:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
Puntos: 528
Respuesta: Borrar dato vencido

Pues si te fijas, le estás diciendo que borre lo que en la columna date tenga un valor mayor a 30... ¿30 qué? el sistema no lo sabe. Si tu campo tiene formato fecha, debes crear tu variable tomando la fecha actual y restando 30 días, para luego en la tabla borrar lo que tengan una fecha anterior usanod el signo < a la fecha que creaste.
  #3 (permalink)  
Antiguo 31/01/2014, 17:15
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 14 años, 11 meses
Puntos: 38
Respuesta: Borrar dato vencido

Código:
DELETE FROM tabla WHERE TU_CAMPO_FECHA < ('2013-12-31' - INTERVAL 30 DAY)
  #4 (permalink)  
Antiguo 31/01/2014, 17:45
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Respuesta: Borrar dato vencido

Gracias... trate de hacer lo siguiente...


Código PHP:
$fechaven   30;
$date       date('d.m.y');

$res $fechaven $date;

$sqldelete  $con->query('DELETE * FROM job WHERE date > $res');

echo 
$sqldelete
Hice esto y tampoco funciona.... je
__________________
Zreep
  #5 (permalink)  
Antiguo 31/01/2014, 20:47
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Respuesta: Borrar dato vencido

Probe de lo que rolygc compartio.. pero tambien cambie el ritmo. No voy a borrar sino a seleccionar los nuevos e hice esto:


Código PHP:

$sql  = $con->query("select * from job where jdate < DATE_ADD(CURDATE(), INTERVAL 30 DAY)");

while ($fila = $sql->fetch()) {

?>

<div><?php echo $fila['jtitle']; ?> - <?php echo $fila['jdate']; ?><br></div>

<?php
}

?>
pero tampoco funciona... nose que estoy haciendo mal...
__________________
Zreep
  #6 (permalink)  
Antiguo 31/01/2014, 20:57
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Borrar dato vencido

la sentencia Delete no lleva asterisco

Delete from Tabla where condicion;

Saludos, espero que sea eso
  #7 (permalink)  
Antiguo 31/01/2014, 21:14
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Respuesta: Borrar dato vencido

No es eso pero gracias rottenp4nx. Ahora quiero que se vea las publicaciones nuevas, la que tiene mas de 30 dias no...


Código PHP:
$sql  = $con->query("select * from job");

while ($fila = $sql->fetch()) {

$fecha = $fila['jdate'];
$dias = date('d-m-Y',strtotime('-30 days'));

if ($fecha > $dias){


?>

<?php echo $fila['jtitle']; ?> - <?php echo $fila['jdate']; ?><br>

<?php
}
}
Pero esto da como resultado: trabajo 1 - 29-01-2014. Y los otros no me los muestra
__________________
Zreep
  #8 (permalink)  
Antiguo 01/02/2014, 13:22
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Respuesta: Borrar dato vencido

Tambien probe con INTERVAL 30 DAY pero tampoco funciona... Ahora hice esto... a la fecha que guardo le pido que muestre las que son menores a 30 dias... y me muestra una que tiene mas de dias de publicacion... eso estaria mal...

Código PHP:
$sql  $con->query("SELECT * FROM job");

while (
$fila $sql->fetch()) {

$fecha $fila['jdate'];
$dias 30;

if (
$fecha $dias){.... 
alguien quien me puede orientar un poco...
__________________
Zreep
  #9 (permalink)  
Antiguo 01/02/2014, 15:52
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Borrar dato vencido

http://dev.mysql.com/doc/refman/5.0/...functions.html

Saludos
  #10 (permalink)  
Antiguo 01/02/2014, 16:05
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 5 meses
Puntos: 12
Respuesta: Borrar dato vencido

Gracias a todos... encontre una funcion en mysql y quedo asi...

Código PHP:
$sql  $con->query("SELECT * FROM job WHERE jdate >= CURDATE()"); 
Esto muestra los datos publicados solo en el mes actual. Por otro lado el formato de fecha influye mucho, ya que no tenia buenos resultado en el formato d-m-Y y lo cambie.

Gracias a todos nuevamente
__________________
Zreep

Etiquetas: dato, fecha, sql, tabla, variable
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 02:28.