我有两个sales_orders和sales_invoices。我的目标是在按下按钮时将数据从sales_orders复制到sales_invoices。
我从一个传递WHERE变量(sales_order_id(的表单中的提交中调用PHP中的一个函数。我已经确认变量被正确调用,当我直接在mysql中执行此语句时,它正如预期的那样成功,但当我在函数中运行它时,它会为sales_order_id的每一次出现创建一行(50行,而不是一行(。我的sales_order_id使用12345。
我做错了什么?
这是我的问题:
INSERT into sales_invoices(si_customer_id, si_purchase_order_number, ref, si_gross_total)
select so_customer_id, so_purchase_order_number, sales_order_id, sum(so_gross_total + so_vat_adjustment_value) as gross_total
from sales_orders where sales_order_id = 12345
这是我的PHP代码
function create_invoice(){
if(isset($_POST['create_invoice'])){
$sales_order_id = escape_string($_POST['sales_order_id']);
$query = query("INSERT into sales_invoices(si_customer_id, si_purchase_order_number, ref, si_gross_total)
select so_customer_id, so_purchase_order_number, sales_order_id, sum(so_gross_total + so_vat_adjustment_value) as gross_total
from sales_orders where sales_order_id = $sales_order_id");
confirm($query);
}
}
所有的可变增益都能正常工作,通过回声进行测试。。。sales_order_id是表单上的一个隐藏输入,并且正在按原样进行提取。
感谢大家的投入。通过将代码更改为此
if(isset($_POST['create_invoice']) && $sales_order_id == $_POST['sales_order_id']){
它正常工作。
也谢谢你的小费;删除sum,因为它用于垂直加法,就像对整列求和一样">