我这里有一个代码,可以从sales_order
删除一行数据,然后将qty
的值返回到产品表。
<?php
include('connect.php');
//get values from href
$id=$_GET['id'];
$invoice=$_GET['invoice'];
$qty=$_GET['qty'];
$product=$_GET['product'];
//returns quantity to stock
$sql = "UPDATE products
SET stock=stock+?
WHERE productid=?";
$q = $db->prepare($sql);
$q->execute(array($qty,$product));
//execute query
$result = $db->prepare("DELETE FROM sales_order WHERE transaction_id= :id");
$result->bindParam(':id', $id);
$result->execute();
header("location:pos.php?invoice=$invoice");
?>
现在,我的目标是要有一个重置按钮,该按钮将从sales_order中删除具有相同发票编号的所有行,然后每行将数量值返回到product表。我似乎找不到办法。谁能帮我吗?
答案 0 :(得分:0)
您可以使用UPDATE
来创建JOIN
:
UPDATE products AS p
JOIN sales_order AS s on s.productid = p.productid
SET p.stock = p.stock + s.quantity
WHERE s.invoice_number = :invoice
然后,您可以删除带有该发票编号的所有sales_order
行。您应该使用事务来确保这一切都是原子完成的。
我在上面对表的架构进行了一些假设,您需要调整为实际的列名。
答案 1 :(得分:-1)
我认为您可以采用数组概念。我认为在删除之前使用select查询检索所有必需的值很简单。然后,您可以将其保存到所需的表中。您可以删除值