Foros del Web » Programando para Internet » PHP »

leer la fecha de vencimiento de la db

Estas en el tema de leer la fecha de vencimiento de la db en el foro de PHP en Foros del Web. hola comunidad FW. tengo un problema: como hago para que se cambie el valor de "1" a "2" automaticamente en la base de datos. cuando ...
  #1 (permalink)  
Antiguo 04/08/2012, 14:58
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
leer la fecha de vencimiento de la db

hola comunidad FW.

tengo un problema: como hago para que se cambie el valor de "1" a "2" automaticamente en la base de datos. cuando se termina el período vip.
Es decir el valor "1" indica que el vip esta activo. y el "2" que esta vencido.

en este momento tengo que cambiar el valor 1 a 2 manualmente.

este es el codigo al agregar los dias vip.

Código PHP:

<?php

function suma_fechas($fecha,$ndias)
{
      if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
              list(
$dia,$mes,$año)=split("/"$fecha);
      if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
              list(
$dia,$mes,$año)=split("-",$fecha);
        
$nueva mktime(0,0,0$mes,$dia,$año) + $ndias 24 60 60;
        
$nuevafecha=date("d/m/Y",$nueva);
      return (
$nuevafecha);
}
$queryb1 = ("Select puntos  From memb_info where memb___id='$mid'");
$resultb1 mssql_query$queryb1 );
$rowb1 mssql_fetch_row($resultb1);
if(
$rowb1[0] < 200){
die (
"No tienes suficientes puntos para poder entrar al server vip.<p><a href=puntos.php><font color=orange>Compre puntos aquí</font></a></p>");
}

$queryb = ("Select vip,vencimiento puntos From memb_info where memb___id='$mid'");
$resultb mssql_query$queryb );
$rowb mssql_fetch_row($resultb);
$dia date('d/m/Y');
if(
$rowb[0] == 1){
    
$fech1 $rowb[1];
    
$nuevovenc =suma_fechas($fech130);
    
$msquery1 "INSERT INTO historialvip (usuario,anterior,ultimo,act,fecha,oper) values ('$mid','$rowb[1]','$nuevovenc','1',getdate(),'Renovacion2')";
    
$sqlinject->test($msquery1);
    
$msresult1 mssql_query($msquery1);
    
$msquery3 "
UPDATE dbo.memb_info SET puntos = memb_info.puntos - 200
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET vip = '1'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET SCFIsVip = '1'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET fechapago = '$dia'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET vencimiento = '$nuevovenc' 
WHERE memb___id = '$mid';
UPDATE dbo.memb_stat SET vip = '1'
WHERE memb___id = '$mid'"
;
$sqlinject->test($msquery3);
$msresult3mssql_query($msquery3);

echo 
"Se a agregado 30 dias vip a su cuenta.<br><br>El vip vence el: $nuevovenc <br><br><br><a href=intro.php>VER DETALLE</a>";
}
else {
    
$fech1 $dia;
    
$nuevovenc =suma_fechas($fech130);
    
$msquery1 "INSERT INTO historialvip (usuario,anterior,ultimo,act,fecha,oper) values ('$mid','$fech1','$nuevovenc','1',getdate(),'Activacion2')";
    
$sqlinject->test($msquery1);
    
$msresult1 mssql_query($msquery1);
    
$msquery3 "
UPDATE dbo.memb_info SET argenpnt = memb_info.puntos - 200
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET vip = '1'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET SCFIsVip = '1'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET fechapago = '$dia'
WHERE memb___id = '$mid';
UPDATE dbo.memb_info SET vencimiento = '$nuevovenc'
WHERE memb___id = '$mid';
UPDATE dbo.memb_stat SET vip = '1'
WHERE memb___id = '$mid'"
;
$sqlinject->test($msquery3);
$msresult3mssql_query($msquery3);

echo 
"Se a agregado 30 dias vip a su cuenta.<br><br>El vip vence el: $nuevovenc <br><br><br><a href=intro.php>VER DETALLE</a>";
}

?>
Espero que me puedan ayudar,
saludos.

Última edición por datairon; 04/08/2012 a las 15:57
  #2 (permalink)  
Antiguo 04/08/2012, 15:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: leer la fecha de vencimiento de la db

Tendrías que usar un cron job que se ejecute periodicamente (ej una vez al día) que haga esa comprobación y cambie el estado de los usuarios.

Saludos.
  #3 (permalink)  
Antiguo 04/08/2012, 16:06
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: leer la fecha de vencimiento de la db

la idea no es actulizar la informacion sino que al llegar la fecha de caducacion cambie el valor 1 a 2.

saludos
  #4 (permalink)  
Antiguo 04/08/2012, 16:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: leer la fecha de vencimiento de la db

Precisamente, eso lo debes de hacer con un cron job, que se ejecuta cada día y cheque los miembros que ese día sea su fecha que "caduque", y entonces cambias el valor de 1 a 2.
  #5 (permalink)  
Antiguo 05/08/2012, 18:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
crear cron job en php

necesito verificar las fechas de vencimiento de la DB para que el dia del vencimiento cambie el valor y no muestre el producto.
¿puedo crear un javascrip para que todos los dias verifique si es el dia de vencimiento? y si es el dia cambiar el valor de cierta columna.

Cita:
VALOR:

1=ACTIVO (muestra el producto)
2=VENCIDO (no muestra el producto
PD: Actualmente tengo que hacer esto manual, es por eso que quiero crear algo para que lo verifique automaticamente.


Saludos,
datairon
  #6 (permalink)  
Antiguo 05/08/2012, 18:59
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: crear cron job en php

Cita:
Iniciado por datairon Ver Mensaje
¿puedo crear un javascrip para que todos los dias verifique si es el dia de vencimiento?
javascript no tiene nada que ver con bases de datos, no tiene alcance como para manipularlas. Estas medio confuso con los lenguajes, acá solo damos php no javascript, pero de todas maneras con javascript no tenes acceso a bases de datos, con php si.

Etiquetas: cron, fecha, job
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 22:54.