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 に答える