在PHP文件上为CRON作业设置电子邮件警报?

时间:2012-05-21 11:49:23

标签: php email cron email-validation

我在php文件上设置了一个cron-job。我还设置了电子邮件,以便当cron执行时,我收到电子邮件警报。所以我在那个在电子邮件正文中显示的php文件中的 echo 中放了什么声明。

我怀疑它是不是检查代码条件,它只是流经代码和&在邮件正文中显示回显语句。

看下面的代码 - :

$query_update = "UPDATE  tier_price tp 
JOIN   catalog_product_entity cpe   ON    cpe.entity_id = tp.entity_id    
AND    cpe.name LIKE '$col2'   AND   website_id = $col4 
JOIN   customer_group cg   ON    cg.customer_group_id = tp.customer_group_id   AND   cg.customer_group_code =  $col1 SET cpetp.value = ".$col3.";";
mysql_query($query_update);
$count = mysql_affected_rows();
if($count == 1)
{
         echo "<br />"."Price for customer group $col1 for item $col2 is updated to $col3";
}
if($count == 0)
{
       $qry_fetch_product = "SELECT entity_id FROM catalog_product_entity WHERE name = '$col2'";
       $res_qry_fetch_product = mysql_query($qry_fetch_product);
       while($row = mysql_fetch_array($res_qry_fetch_product))
       {
        $entity_id = $row["entity_id"];
       }

       $qry_fetch_grp_code = "SELECT customer_group_id FROM customer_group WHERE customer_group_code = $col1 ";
       $res_qry_fetch = mysql_query($qry_fetch_grp_code);
       while($row = mysql_fetch_array($res_qry_fetch))
       {
        $customer_group_id = $row["customer_group_id"];     
       }

       $qry_insert_base = "INSERT into tier_price(entity_id,customer_group_id,qty,value,website_id) VALUES ($entity_id,$customer_group_id,1,$col3,$col4)";
       $res_qry_insert_base = mysql_query($qry_insert_base);    

  echo "<br />"."Price $col3 for customer group $col1 for item $col2 is inserted";
}

我收到的邮件提醒包含 - :

<br />Price for customer group 101 for item abc is updated to 252<br />Price 252 for customer group 101 for item abc is inserted
<br />Price for customer group 102 for item pqr is updated to 252.49<br />Price 252.49 for customer group 102 for item pqr is inserted
<br />Price for customer group 103 for item xyz is updated to 15.5<br />Price 15.5 for customer group 103 for item xyz is inserted

所以我怀疑是,它在两个循环中都不应该是真实的情况。好像查询得到更新计数变为1,所以它必须只是throgh if($ count == 1)loop&amp;类似地,如果没有更新计数变为0但是从o / p我们可以看到它同时进入循环和放大器。我们可以在电子邮件警报中看到这两行非常令人困惑...

任何人都可以提供解决方案来避免这种情况......所以如果发生更新,它会在邮件中显示更新,或者插入代码时会显示插入语句..

1 个答案:

答案 0 :(得分:0)

请检查 http://php.net/manual/en/function.mysql-affected-rows.php 使用类似下面的内容

<?php
$count = mysql_affected_rows();
if(mysql_affected_rows())
{
}else{

}
?>