Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
产品过期时发送PHP邮件_Php_Mysql_Email - Fatal编程技术网

产品过期时发送PHP邮件

产品过期时发送PHP邮件,php,mysql,email,Php,Mysql,Email,我想发送邮件,当产品在前一天和后一天过期时,在php中我使用了datediff mysql函数和php,但是如果产品过期日期像2012年1月31日,那么不同的值不适合我的编码,请帮助解决它, 这是我的代码 <?php $sql = mysql_query("SELECT * FROM supplier_product_det"); $results = mysql_num_rows($sql); //echo '<script>alert("'.$results.'")<

我想发送邮件,当产品在前一天和后一天过期时,在php中我使用了datediff mysql函数和php,但是如果产品过期日期像2012年1月31日,那么不同的值不适合我的编码,请帮助解决它, 这是我的代码

<?php

$sql = mysql_query("SELECT * FROM supplier_product_det");
$results = mysql_num_rows($sql);
//echo '<script>alert("'.$results.'")</script>';
if ($results > 0)
{   

        for($i=0;$i<$results;$i++)
        {
            while($rows = mysql_fetch_array($sql))
            {
             /* print_r($rows['expired_on']);?><br /> <?*/
             $exdate = $rows['expired_on'];
             $curdate = date('Y-m-d'); 
             $datedif = mysql_query("select datediff('".$curdate."','".$exdate."')");
             while( $date = mysql_fetch_array($datedif) )
             {
                //echo $date['0'];
                //echo $rows['pro_code'];
                if (($date['0'])== 1)
                {

                    if(($rows['mailcount'])!== $curdate)
                    {
                        $to = $rows['supplier'];
                        $subject = "Product Expire Intimation";
                        $message = "Dear Mr/Miss/Mrs
                        The Following Your Product Expired 
                        Product Code:".$rows['pro_code']."
                        Product Name:".$rows['product_name']."
                        Product Expire Date:".$rows['expired_on']."";               
                        $from = "tone@bgrow.com";
                        $headers = "From:" . $from;
                        mail($to,$subject,$message,$headers);
                        $checkdate = mysql_query("update supplier_product_det set mailcount ='".$curdate."' where id='".$rows['id']."'") or die(mysql_error());
                    }


                    //echo $rows['supplier'];

                }
                    if (($date['0'])== 0)
                {
                    if(($rows['mailcount'])!== $curdate)
                    {
                        $to = $rows['supplier'];
                        $subject = "Product Expire Intimation";
                        $message = "Dear Mr/Miss/Mrs
                        The Following Your Product Expired
                        Product Code:".$rows['pro_code']."
                        Product Name:".$rows['product_name']."
                        Product Expire Date:".$rows['expired_on']."";
                        $from = "tone@bgrow.com";
                        $headers = "From:" . $from;
                        mail($to,$subject,$message,$headers);
                        $checkdate = mysql_query("update supplier_product_det set mailcount ='".$curdate."' where id='".$rows['id']."'") or die(mysql_error());
                    }


                    //echo $rows['supplier'];

                }
                    if (($date['0'])== -1)
                {
                    if(($rows['mailcount'])!== $curdate)
                    {
                        $to = $rows['supplier'];
                        $subject = "Product Expire Intimation";
                        $message = "Dear Mr/Miss/Mrs
                        The Following Your Product will Expire Today 
                        Product Code:".$rows['pro_code']."
                        Product Name:".$rows['product_name']."
                        Product Expire Date:".$rows['expired_on']."";
                        $from = "tone@bgrow.com";
                        $headers = "From:" . $from;
                        mail($to,$subject,$message,$headers);
                        $checkdate = mysql_query("update supplier_product_det set mailcount ='".$curdate."' where id='".$rows['id']."'") or die(mysql_error());
                    }


                    //echo $rows['supplier'];

                }
             }

            }

        }

}
?>


试试这样的方法

PHP: $now = date('Y-m-d', strtotime('now'));
-


编写第二个select查询,如下所示

SELECT DATEDIFF($exdate, CURRENT_DATE) as diff;
另外,无需编写单独的select查询,您可以在第一个查询中获得与之相同的列

SELECT column1, column2, column3, DATEDIFF(expired_on, CURRENT_DATE) as diff
FROM supplier_product_det

您可能需要更改过期日期和当前日期的位置,以获得正确的差异值

数据库的架构是什么?另外,您是否有理由不将此处理延迟到数据库?(毕竟,您可以修改第一个查询,只为即将过期的查询返回行,这样您就不必只为进行日期比较而进行第二次查询)不需要进行第二次选择。在第一个select语句中添加一列,该列将立即返回()
SELECT column1, column2, column3, DATEDIFF(expired_on, CURRENT_DATE) as diff
FROM supplier_product_det