javascript - 当我尝试插入两条记录时,CUR_STOCK 表中只有一条记录得到更新?

标签 javascript php mysql foreach

当我尝试将两条记录插入 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';
            }

最佳答案

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

关于javascript - 当我尝试插入两条记录时,CUR_STOCK 表中只有一条记录得到更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53665595/

相关文章:

mysql - mysql中的计算和多重连接

用于获取 Joomla 用户及其配置文件字段的 MySQL 查询

javascript - 如何在 JavaScript 的 while 循环中进行字符串比较

javascript - console.log(name) 中的奇怪问题

php - PHP检查用户名是否可用

php - Magento 通过商店 ID 或商店代码获取当前页面标题

php - 保存 CSV 文件而不是下载

javascript - 如何将 html 表单名称获取到 Controller 中?

javascript - 模态弹出打印问题

php - 数组元素聚合中的mongodb avg