将PHP函数调用到sql查询中

时间:2010-08-01 10:11:33

标签: php sql function

我有一个名为“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'
    ");

但它不起作用。

我该怎么办?

非常感谢您的帮助,祝您度过愉快的一天:)

2 个答案:

答案 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。这是对的吗?