【问题标题】:Getting total of from two separate mysql database tabel从两个单独的mysql数据库表中获取总数
【发布时间】:2017-07-19 23:53:18
【问题描述】:

目前我正在处理 Mysql 数据库上的两个单独的表,ITEM,CUSTOMER。 详情如下

ITEM
Id
Name
Cost
Payment Balance
CustomerName

CUSTOMER
Id
CustomerName
Balance

我需要完成两个任务:

  1. 当我向项目数据库插入记录时,应更新客户数据库中的余额字段。

  2. 当我看到客户购买的所有商品时,应计算该客户的总余额。

请帮忙。

目前我正在使用以下代码:

$Id=$_GET['Id'];
........
$query = "SELECT Item.id, Item.Name, Item.Cost, Item.PaymentBalance,Item FROM Item INNER JOIN customer ON customer.CustomerName = visam.CustomerName where customer.Id='$Id'";
$result = mysql_query($query) or die(mysql_error());

<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td width="20px" ><? echo $rows['id']; ?></td>
<td width="310px" ><? echo $rows['Name']; ?> </td>
<td width="310px" ><? echo $rows['Cost']; ?> </td>
<td width="210px" ><? echo $rows['PaymentBalance']; ?> </td>

结果现在显示正确,但我不知道如何在页面末尾获取付款余额总额。

【问题讨论】:

  • 可能建议链接客户 ID 字段上的两个 tbales 而不是客户名称。这是常见的做法,而且速度更快。比较数字比比较字符串更有效。
  • 你说得对,习惯了,这只是一个快速的工作,我不太擅长编码。我从 ID 开始,但后来更改为 name,因为我不知道如何在 ITEM 表中填充客户名称,因为只有 ID 存储在那里。
  • 我的解决方案对您有用吗?

标签: mysql html-table sum


【解决方案1】:
<?php $total_balance=0; ?>

..// your while loop

<?php $total_balance+=$rows['PaymentBalance']; ?>

..// end while loop

<?php var_dump($total_balance); ?>

【讨论】:

    【解决方案2】:

    我建议将余额显示为表格的最后一行

    while($rows=mysql_fetch_array($result)){
    $balance += $rows['PaymentBalance'];
    <tr>
    <td width="20px" ><? echo $rows['id']; ?></td>
    <td width="310px" ><? echo $rows['Name']; ?> </td>
    <td width="310px" ><? echo $rows['Cost']; ?> </td>
    </tr>
    }
    <tr>
    <td width="210px" ><? echo $balance; </tr>?>
    

    编辑

    另外我认为你可以不把余额放在你的表中如果它代表你的“成本”的总和......这样

    $balance += $rows['Cost'];
    

    【讨论】:

    • 亲爱的 voodoo417,肖恩;感谢您的回复,但代码没有产生任何结果。这段代码应该搜索客户订购的所有项目并将未付余额相加,也许我应该在插入项目记录时填充 CUSTOMER 表上的余额字段。
    • 查看编辑更新。您还可以展示您的表架构示例,以便我们查看您的数据是什么样的?
    • 这是我的代码:etakartourism.com/code/Customer.txt 这是我的数据表etakartourism.com/code/table.jpg
    • 如果我理解您的表架构,那么您在两个表中都有“余额”列,但在原始问题的代码中,您将其称为“PaymentBalance”。您可以将列名更改为该列名,或者您尝试为余额列设置别名,在这种情况下,它将如下所示:SELECT Item.id, Item.Name, Item.Cost, Item.Balance AS 'PaymentBalance',Item FROM Item INNER... 然后你的代码 $balance += $rows['PaymentBalance'] 现在应该可以工作了。也作为最后注意手表区分大小写。选择余额... $rows['balance'].
    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2020-10-06
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多