我有一个名为“invoice_prod”的MySQL表:
id | qte | price | id_tva
另一张名为“tva”的表格:
id_tva | content
现在,我想找到一张发票的总数,所以我提出了这个查询并且它有效。
$sql_mnt = mysql_query("
SELECT SUM( (qte * price) * ( 1 + (tva / 100))) AS total_un_prod
FROM invoice_prod
WHERE id='$id_invoice'
");
此查询只有一个问题。 “tva”返回“tva的id”而不是其内容。我必须从“tva”表中提取其内容。
显然,这个查询返回tva的值:“1”,或者它应该返回“18%”,这是tva ID的内容。
我尝试创建一个PHP函数,从id中提取tva的内容并将其包含在SQL查询中,如下所示:
$sql_mnt = mysql_query("
SELECT SUM(( qte * price) * ( 1 + (" .
tva_get_by_id(tva) . "/ 100))) AS total_un_prod
FROM invoice_prod
WHRE id='$id_invoice'
");
但它不起作用。
我该怎么办?
非常感谢您的帮助,祝您度过愉快的一天:)
答案 0 :(得分:5)
使用
$sql_mnt = mysql_query("
SELECT SUM((`qte`*`price`)*(1+(`content`/100))) AS `total_un_prod`
FROM `invoice_prod`
LEFT JOIN `tva` USING (`id_tva`)
WHERE `id`='".mysql_real_escape_string($id_invoice)."'");
这将连接mysql中的两个表,因此您可以直接使用content
字段,我认为该字段包含TVA百分比。
编辑格式化并解决id_invoice
的转义问题(我猜它是int,所以演员阵容就足够了,但如果没有,这也会有效)
答案 1 :(得分:0)
我不确定我是否理解你在这里做了什么,但看起来你想要的是tva表上的INNER JOIN,然后在你的计算中使用tva.content。这是对的吗?