PHP 代码使用来自 forloop 的 +1 个月更新日期


php code to update date using +1 months from forloop

input data from form like below.
receipt      =  700
coupon       =  501,502,503,504,505,506
coupondate   =  28-02-2015

我表格中的数据如下

我需要根据收据更新优惠券和优惠券日期....

receipt    coupon  coupondate
 700        501    27-03-2015
 700        502    27-04-2015
 700        503    27-05-2015
 700        504    27-06-2015
 700        505    27-07-2015
 700        506    27-08-2015

但是在更新代码运行后,这会产生如下所示的输出。

receipt    coupon  coupondate
 700        501     27-03-2015
 700        501     27-03-2015
 700        501     27-03-2015
 700        501     27-03-2015
 700        501     27-03-2015
 700        501     27-03-2015

MY for 循环在更新代码中不起作用...请帮助生成适当的输出...

下面是我的更新代码....

但是插入查询中的相同代码运行良好...但是 inh 更新它会在所有行中产生相同的输出.....

请帮忙..

 if(isset ($_GET['edit']))
 {
    $receipt_no = $_GET['edit'];
    $coupon = $_POST['coupon'];                     
    $arr = explode(",", $coupon);
    $min = min($arr);
    $max = max($arr);   
    $startingdate = date("d-m-Y", strtotime($_POST['startingdate']));
    for ($i = 1 ; $i <= count($arr) ; $i++)  
    {
        $count = 1;
        for ($j = $min; $j <= $max; $j++)
        {
            $coupondate = date("d-m-Y", 
                               strtotime(date("d-m-Y", 
                                 strtotime($startingdate)) . 
                                 " +" . $count . " month - 1days"));
            $count++;                   
            $updaterow = $database->updateRow(
                         "UPDATE receipt_entry 
                          SET 
                          coupondate=:coupondate,
                          coupon=:coupon,
                          startingdate=:startingdate 
                          WHERE receipt_no = :receipt_no",
                                array(':coupondate'=>$coupondate,
                                      ':coupon'=>$j,
                                      ':startingdate'=>$startingdate,
                                      ':startingdate'=>$startingdate,
                                      ':receipt_no'=>$receipt_no
                                     )
                          );        
        }   
    }
}

您的 SQL 查询显示WHERE receipt_no = :receipt_no,因此它将始终将相同的数据放入具有该receipt_no的所有行中。您需要准确指定应更新哪一行。

顺便说一下,你有 2 个嵌套的循环,而你只需要 1 个 for 循环。