php 我想在单击提交时更新数据库中的股票,但它存储了错误的输入

rt4zxlrg  于 2023-01-01  发布在  PHP
关注(0)|答案(1)|浏览(82)

下面是我的代码插入选中的值从复选框到数据库。我打算更新股票从另一个表后,我点击提交,但它存储了一个不正确的输入。例如:如果我在结帐页面上输入了5个数量,而不是减少库存数量,它会输入我输入的负值:-5...这里似乎有什么问题?

<?php
include 'config.php';
$invoice = $_POST['invoiceid'];
if(isset($_POST['submit'])){
    $checked_array=$_POST['prod'];
    
    foreach ($_POST['prodname'] as $key => $value) {
        if(in_array($_POST['prodname'][$key], $checked_array)){
            $product=$_POST['prodname'][$key];
            $price= $_POST['price'][$key];
            $qty= $_POST['qty'][$key];
            
            $amtpaid = $price * $qty;

            $query = "INSERT INTO purchasedproducts SET invoice_id='$invoice', productname='$product', quantity='$qty', amtpaid='$amtpaid'";
            $run = mysqli_query($link,$query);

            //select product_stock table
            $stock_table = mysqli_query($link, "SELECT * FROM product_stock");
            
            $stock = $row['qty_stock'] - $qty;
            $update_que = "UPDATE product_stock SET qty_stock='$stock' WHERE product_name='$product'";
            $run_update = mysqli_query($link,$update_que);
        }        
    }
}
header('Location: sample.php');
?>
nvbavucw

nvbavucw1#

您的查询正在用您的“输入”更新列值。您想要的是这样的东西。

$update_que = "UPDATE product_stock SET qty_stock=qty_stock+'$stock' WHERE product_name='$product'";

这是将值设置为其原始值加上输入。

相关问题