Foros del Web » Programando para Internet » PHP »

Ayuda con Cron Job

Estas en el tema de Ayuda con Cron Job en el foro de PHP en Foros del Web. Tengo un gran problema con esta funcion, me llega el correo, pero me llegan todos los de la base, solo necesito que me mande los ...
  #1 (permalink)  
Antiguo 04/01/2008, 06:04
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 20 años
Puntos: 3
Ayuda con Cron Job

Tengo un gran problema con esta funcion, me llega el correo, pero me llegan todos los de la base, solo necesito que me mande los que tienen 2 dias de retraso, por favor ayudenme.

Código PHP:
<?
if (strstr($PHP_SELF, "/am_modules/"))  die ("Usted no puede accesar este archivo directamente...");

// Genero la fecha para la evaluacion de las 48 hrs [2 dias]
include_once ("am_config.php");
include_once (
"mail48.php");

//$fechan = date("d/m/Y");
 
$fech_actu = date("d-m-Y"); // fecha actual
 
$f_ni_aaa = date("Y"); // Año actual
 
$f_ni_mmm = date("m"); // Mes actual
 
$f_ni_ddd = date("d"); // Dia actual

 
$time = time(); // Timestamp Actual
 
$restar = (24*60*60)*2; // (horas*minutos*segundos)*2 -> numero de segundos en dos dias

 
$time_ante = $time-$restar;

 
$fech_ante = date("d-m-Y",$time_ante); // fecha con dos dias menos
 
$f_ni_aa_ante = date("Y",$time_ante); // Año con dos dias menos
 
$f_ni_mm_ante = date("m",$time_ante); // Mes con dos dias menos
 
$f_ni_dd_ante = date("d",$time_ante); // 2 dias antes de hoy

$ebpe = "EBPE SE-019"; 
$ole  =  "MSC OLE/W9"; 

$hoy=$f_ni_aa_ante.$f_ni_mm_ante.$f_ni_dd_ante;

$sel_sql = "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing1 , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where  ((ins_estado LIKE 'A') or (ins_estado LIKE 'I')) AND (ins_fecing1 < '$hoy') and (ins_proyecto LIKE '$ebpe') order by ins_folio desc";
$resultado = db_query($sel_sql) or die(db_error());


//---> include idioma
//
  
$config["leng"] = "sp"; // Español 
  
include_once( "am_modules/inspec/idioma/msg_".check_lang($config["leng"]).".php" ); 

  
srand((double)microtime()*1000000); 

  
draw_header(); 

if( ! 
$session["logged"] ) 
{ 
    
theme_draw_box( lg_TitCon, INGRESO_ACTIVATE_ERROR, "100%" ); 
    
draw_footer(); 
    exit; 
} 
?> 
<style type="text/css"> 
TD { 
    font-size : 10px; 
    font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 
} 
</style> 
<? 

echo"<h3 align=\"center\">Inspecciones Pendientes 48 horas o más (EBPE)</h3>";  

echo 
"<table border=0 width=90%><tr>"; 
echo 
"<td></td><td>Folio</td><td>Fecha</td><td>Empresa</td><td>Ingresado por </td><td>Estado</td></tr>"; 
echo 
"<tr></tr>"; 
while(
$i=mysql_fetch_array($resultado)){ 

if (
$i){

echo 
"<td><a href=\"inspec.php?id_insmod=$i[0]\" target=\"parent\"><img src=\"am_modules/downloads/derec.gif\" width=16 height=16 alt=\"click\" border=0 align=left></a></td>"; 
echo 
"<td>$i[0]</td>"; 


$f_fecing1  = substr($i["ins_fecing1"],6,2)."/".substr($i["ins_fecing1"],4,2)."/".substr($i["ins_fecing1"],0,4); 

echo 
"<td>$f_fecing1</td>"; 
echo 
"<td>$i[2]</td>"; 


$nom_sql = "SELECT realname FROM am_users WHERE name = '".$i["ins_digito"]."'";  
$nom     = db_query($nom_sql) or die(db_error()); 
$nombre  = db_fetch_array($nom); 
$f_autor = $nombre["realname"]; 


echo 
"<td>$f_autor</td>"; 

$est_sql = "SELECT ins_estado FROM am_inspeccion WHERE ins_estado = '$i[ins_estado]'";  
$est     = db_query($est_sql) or die(db_error()); 
$estado  = db_fetch_array($est); 
$f_estado = $estado["ins_estado"]; 
switch(
$f_estado) { 
case 
"Q": "Por Inspeccionar"; 
      
$var = "Por Inspeccionar"; 
      break; 
case 
"A": 
      
$var = "Aprobada para inspeccionar"; 
      break; 
case 
"R": 
      
$var = "Rechazada para inspeccionar"; 
      break; 
case 
"T": 
      
$var ="Inspeccion terminada"; 
      break; 
case 
"I":
      
$var ="Reinspeccionar"; 
      break;
case 
"E":
      
$var ="Inspeccion rechazada"; 
      break;
case 
"I":
      
$var ="Reinspecionar"; 
      break;

   
} 
echo 
"<td>$var</td></tr>"; }

}


?>
Muchas gracias...
  #2 (permalink)  
Antiguo 04/01/2008, 11:11
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 20 años
Puntos: 3
Re: Ayuda con Cron Job

Quien me puede ayudar?
  #3 (permalink)  
Antiguo 04/01/2008, 12:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 20 años, 4 meses
Puntos: 2135
Re: Ayuda con Cron Job

En primera te digo que eso no tiene nada que ver con Cron Jobs, tu problema es que tu Query para seleccionar los datos esta mal. Debes de seleccionar los registros entre Hoy y hace dos dias.

Saludos.
  #4 (permalink)  
Antiguo 04/01/2008, 14:08
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 20 años
Puntos: 3
Re: Ayuda con Cron Job

mira Gatorv, gracias por contestar, no entiendo nada del cron job, solo se que ya me dejaron ese codigo programado y me llegan los correos, pero todos, no se si seria mucha la patudez de que me ayudaras un poquito mas.

lo de los 2 dias si me funciona, pero necesito que mande un correo al pasarse del limite
  #5 (permalink)  
Antiguo 04/01/2008, 14:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 20 años, 4 meses
Puntos: 2135
Re: Ayuda con Cron Job

Sin conocer la estructura de la base de datos ni nada, te podria decir que lo que tienes que hacer es tener un campo en tu base de datos que lo que haga es guardar el tiempo limite, o sea la fecha limite, luego haces un Query y seleccionas los datos que esten entre la fecha de hoy y hace dos dias.

Saludos.
  #6 (permalink)  
Antiguo 08/01/2008, 13:57
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 20 años
Puntos: 3
Re: Ayuda con Cron Job

te refieres a eso gatorV?

Código PHP:
$sel_sql = "select am_inspeccion.ins_folio , am_inspeccion.ins_fecing1 , am_inspeccion.ins_nomemp , am_inspeccion.ins_digito, am_inspeccion.ins_estado from am_inspeccion where  ((ins_estado LIKE 'A') or (ins_estado LIKE 'I')) AND (ins_fecing1 < '$hoy') and (ins_proyecto LIKE '$ebpe') order by ins_folio desc"; 
$resultado = db_query($sel_sql) or die(db_error()); 
Si es eso, eso me funciona muy bien.
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 20:57.