0

我有一个 MySQL 表payment,用于存储客户的所有支付相关数据。表字段为:fileNoclientNamebillNobillAmountstatus。我想构建一个搜索表单,我将在其中输入fileNoclientName,这将产生一个表格,用于获取该文件编号或客户名称的所有记录status = 0(未付费)。这billAmount是一个浮点数。

我不擅长 MySQL,但这是我的 SQL by fileNo 版本

$sql = "SELECT * FROM `payment` WHERE `fileNo` = '$fileNo' AND `status` = '0'";

客户端名称的 SQL

$sql = "SELECT * FROM `payment` WHERE `clientName` = '$clientName' AND `status` = '0'";

无论以哪种方式进行查询,我还需要针对该 fileNo 或 clientName 显示未支付的总金额。

据我了解, SUM() 操作应该是这样的:

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `fileNo` = '$fileNo' AND `status` = '0'";

或者

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `clientName` = '$clientName' AND `status` = '0'";

我的问题是,我的 SUM() 操作是否正确?以及如何获得我选择的未付总额unpaid?我可以将它存储在变量中吗?

任何想法、建议或资源链接将不胜感激!

4

3 回答 3

1

我认为你应该使用第二个查询,但你错过了 WHERe 子句

   $sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'";

你的未付总金额是的,你不能像那样变数

 $result = mysql_query($sql);
 $row = mysql_fetch_array($result);
   ehco   $row['unpaid'] ;          <------ this will give you the unpaid amount.

当然在你获取你的查询之后。

于 2012-12-13T19:49:33.380 回答
0

我认为您的查询非常正确,不要忘记 FROM 子句:

$sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'";

如果您的客户名称可能包含引号,请小心(查看 addlashes 函数)

然后,得到总和:

$sum = current(mysql_fetch_row(mysql_query($sql)));
于 2012-12-13T19:35:43.957 回答
0

顺便提一句

在此查询中,您错过了FROM条款 :-)

 "SELECT SUM(billAmount) AS `unpaid` 
FROM payment
WHERE `fileNo` = '$fileNo' 
AND  `clientName` = '$clientName'
 AND `status` = '0'";

是的,可以将一个值存储在第一个查询的变量中并用于辅助查询。我希望我现在可以在移动设备上为您提供来自 SQLFIDDLE 的适当示例。如果您可以尝试此代码,将稍后更新。

于 2012-12-13T19:42:47.097 回答