Foros del Web » Programando para Internet » PHP »

Hacer update de estatus despues de 2 dias (48 horas)

Estas en el tema de Hacer update de estatus despues de 2 dias (48 horas) en el foro de PHP en Foros del Web. Hola: Estoy usando una funcion que me enseñaron por aca para tener la diferencia entre una fecha y dos dias (48 horas). El problema que ...
  #1 (permalink)  
Antiguo 11/12/2012, 11:25
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Pregunta Hacer update de estatus despues de 2 dias (48 horas)

Hola:

Estoy usando una funcion que me enseñaron por aca para tener la diferencia entre una fecha y dos dias (48 horas).

El problema que tengo es que hago una consulta en donde veo todas las fechas y habría que evaluarlas para que las menores a dos dias o las que tengan el estatus "pendiente de pago" (puede validarse de cualquiera de las dos maneras) sean consideradas para colocarles el estatus "cerrada" pero no se como hacer esta evaluación. Este es el código:

Código PHP:
Ver original
  1. $conex= db_connect();
  2.   if (!$conex)
  3.    return 0;
  4.  
  5.  
  6. $rs = mysql_query("SELECT * FROM reservas");
  7. while ($result = mysql_fetch_array($rs)) {
  8.     $id_reservacion = $result['id_reservacion'];
  9.     $n_reservacion = $result['n_reservacion'];
  10.     $fecha_carga = $result['fecha_carga'];
  11. }
  12.  
  13. function LimpiaFecha($fecha){
  14.     return str_replace(array('-',':',' '),'', $fecha);
  15. }
  16.  
  17.  
  18. function diffFechas($fechaVieja,$Dias){
  19.     if (LimpiaFecha(date('Y-m-d H:i:s')) - LimpiaFecha($fechaVieja) > $dias*1000000){
  20.         return true;
  21.         } else {
  22.             return false;
  23.             }
  24.             }
  25. if(diffFechas($fecha_carga, 2)){
  26.     # hacemos algo, tenemos mas de 2 dias de diferencia.
  27.     //update;
  28. }

????
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 11/12/2012, 12:30
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Hacer update de estatus despues de 2 dias (48 horas)

Hola kimmy, si entiendo tu problema, solo deberias hacer un update, y poner tus condiciones ahi adentro, no son necesarias esas funciones en php que nos muestras, es mas, hacerlo de esa manera es mucho menos eficiente. Para poder darte una respuesta necesitaria que me muestres las estructuras de las tablas implicadas.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 11/12/2012, 12:35
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Hacer update de estatus despues de 2 dias (48 horas)

Hola, la tabla reservas (es la única que utilizo aqui) tiene estos campos:

id_reservacion (int)
n_reservacion (int)
fecha_carga (datetime)
estatus (varchar)
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 11/12/2012, 15:37
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Hacer update de estatus despues de 2 dias (48 horas)

Entonces debería ser algo como:

Código PHP:
Ver original
  1. $rs = mysql_query("SELECT * FROM reservas WHERE fecha_carga (SEA MAYOR A 2 DIAS)");

Cómo se hace????
__________________
Caminando con el corazón partío
  #5 (permalink)  
Antiguo 12/12/2012, 12:28
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Hacer update de estatus despues de 2 dias (48 horas)

Creo que algo asi te resolveria el problema. Dime si no se entiende algo.

Código SQL:
Ver original
  1. UPDATE reservas SET STATUS= 'cerrada'
  2. WHERE STATUS = 'pendiente de pago'
  3. OR DATEDIFF(now(), fecha_carga ) >=2;
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #6 (permalink)  
Antiguo 12/12/2012, 12:39
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Hacer update de estatus despues de 2 dias (48 horas)

Mil gracias h2swider, funciona perfecto.

__________________
Caminando con el corazón partío

Etiquetas: dias, mysql, update
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 03:20.