【问题标题】:when I try to insert two records only one record is getting updated in CUR_STOCK table?当我尝试插入两条记录时,只有一条记录在 CUR_STOCK 表中得到更新?
【发布时间】:2018-12-07 08:12:39
【问题描述】:

当我尝试将两条记录插入 REGULAR_SUPPY_DET 表时,我能够插入它们,但同时它应该在 CUR_STOCK 表中更新,但只有一条记录在 CUR_STOCK 中得到更新。

elseif ($_POST['action_type'] == 'add')
            {include 'dbconfig.php';
                $item_type=$_POST['item_type'];
                $exist_qty=$_POST['exist_qty'];
                $sup_qty=$_POST['sup_qty'];
                $sup_date=$_POST['sup_date'];
                $sql1="INSERT INTO REGULAR_SUPPLY_HDR(REQ_DATE) VALUES('$sup_date')";
                $res1=mysqli_query($conn,$sql1);
                $result=mysqli_query($conn,"SELECT MAX(REG_SUPPLY_REQ_ID) AS id  FROM REGULAR_SUPPLY_HDR");
                    $res=mysqli_fetch_assoc($result);
                       $sd=$res['id'];


                $i=0;
                foreach($item_type as $s_id)
                {
    $sql = "INSERT INTO REGULAR_SUPPLY_DET(REG_SUPPLY_REQ_ID,ITEM_ID, EXIST_ITEM_QUANTITY, SUPPLIED_QUANTITY, SUPPLIED_DATE) VALUES('$sd','$s_id', '".$exist_qty[$i]."', '".$sup_qty[$i]."', '$sup_date')";
                $insert = mysqli_query($conn,$sql);

                $sql2="UPDATE CUR_STOCK SET QTY= QTY-$sup_qty[$i] WHERE ITEM_ID='$s_id'";
                $res1=mysqli_query($conn,$sql2);
                $i++;
                }
                     echo 'ok';
            }

【问题讨论】:

  • 可以为语言或环境添加标签吗? (我的猜测:SQL?)
  • 谢谢 benc。我已经添加了。

标签: javascript php mysql foreach


【解决方案1】:

php 代码 读取 如果它在第一个表上执行两次插入,它将在第二个表上执行两次更新。这让我怀疑UPDATES 之一正在默默地失败,我刚刚发现这是mysqli 的默认行为。您需要收集更多信息。您可以首先将$res1 的值显示/发布到错误日志,mysqli_query() 在失败时返回 FALSE。您可能会发现 this article 信息丰富/有用。

【讨论】:

  • 非常感谢@DinoCoderSaurus。我发现了错误。我在同一个函数中使用了两次 res1。
猜你喜欢
  • 1970-01-01
  • 2021-02-28
  • 2023-02-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
相关资源
最近更新 更多