0

开始写问题,但是在写问题的同时得到答案。所以不要删除所有内容,发布答案(可能有用)。并且也可能有一些需要改进的地方。

基于此https://stackoverflow.com/a/15048890/2465936答案尝试对一列中的值求和并按另一列中的值分组

例如,表名为2_1_journal

TransactionPartnerName | Amount
-------------------------------
Name one               |   1
Name two               |   2
Name one               |   3
Name three             |   10
Name two               |   7
Name one               |   150

结果想得到这个

Name one = 154
Name two = 9
Name three = 10
4

3 回答 3

2

MySQL 查询

$query_select_all ="
SELECT TransactionPartnerName, SUM(Amount) 
FROM 2_1_journal
GROUP BY TransactionPartnerName";

然后

$sql = $db->prepare($query_select_all);
$sql->execute();
$sql = $sql->fetchAll();

print_r($sql);得到

Array ( [0] => Array ( [TransactionPartnerName] => name one [0] => name one [SUM(Amount)] => 154.00 [1] => 154.00 ) [1] => Array ( [TransactionPartnerName] => name three [0] => name three [SUM(Amount)] => 10.00 [1] => 10.00 ) [2] => Array ( [TransactionPartnerName] => name two [0] => name two [SUM(Amount)] => 9.00 [1] => 9.00 ) )

到目前为止似乎还可以。

然后foreach

<?php
foreach ($sql as $i1 => $row1) {
?>
<tr>
<td width="90px"><div style="width:90px;">
<?php echo htmlspecialchars($row1['TransactionPartnerName'])?>
</div></td>
<td width="50px"><div style="width:53px;">
<?php echo htmlspecialchars($row1['SUM(Amount)'])?>
</div></td>
</tr>
<?php
}
?>
于 2013-07-24T06:05:47.797 回答
0

如果您从数据库中获取结构化查询以向您提供此信息几乎总是更好,但如果这不在表格中,您可以使用它。

$res = array();
foreach($array as $row){
   // make sure we don't get E_NOTICE's when accessing element for the first time
   if (!isset($res[$row["TransactionPartnerName"]])) $res[$row["TransactionPartnerName"]] =0;
   // Use the array key as a means to group
   $res[$row["TransactionPartnerName"]]+= $row1['SUM(Amount)'];
}

echo "<table>";
echo "<thead><tr><th>Transaction Partner</th><th>Total</th></tr></thead>";
echo "<tbody>";
foreach($res as $k=>$v){
    echo "<tr><td>".htmlspecialchars($k)."</td><td>".$v</td></tr>";
}
echo "</tbody>";
echo "</table>";
于 2013-07-24T06:15:09.380 回答
0

如果您创建表的视图会更好。

创建视图:

  1. 转到您的 2_1_journal 表,
  2. 在表格底部的“显示图表”旁边,单击“创建视图” 在此处输入图像描述
  3. 然后你会看到这个显示 在此处输入图像描述
  4. 在视图名称中,填写给您(例如:view_2_1_journal)
  5. 在 AS 中,填写它(或如上图所示):

在此处输入图像描述

  1. 之后,您的 view_2_1_journal 已成功创建。
  2. view_2_1_journal 将是这样的:

    TransactionPartnerName | SUM(`Amount`)
    --------------------------------------
    Name one               |   154
    Name two               |   9
    Name three             |   10
    
  3. 要在 php 上显示它,像往常一样使用 Query Select,不同的是显示数量,使用(例如)这样的东西:$show['Amount'],使用 this在此处输入图像描述代替。

希望这有帮助。

于 2015-05-26T02:41:30.823 回答