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循环在更新代码中不起作用... plz有助于生成正确的输出......
下面是我的更新代码....
但插入查询中的相同代码运行良好...但是更新它会在所有行中生成相同的输出.....
plz help ..
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
)
);
}
}
}
答案 0 :(得分:0)
您的SQL查询显示WHERE receipt_no = :receipt_no
因此它始终会在具有该receipt_no的所有行中放入相同的数据。您需要准确指定应更新哪一行。
顺便说一下,你有2个嵌套的for循环,而你只需要1个循环。