簡體   English   中英

從MySQL查詢返回的分組結果

[英]Group results returned from MySQL query

我正在查詢由前雇員建立的數據庫,很糟糕! 我已經成功收集並輸出了我需要的所有數據-但是我想將數據分組為發行編號。

目前的輸出是這樣的...

Company 1
Issue number: 142
Total: 480.00

Company 2
Issue number: 142
Total: 46

Company 3
Issue number: 142
Total: 240.00

Company 4
Issue number: 142
Total: 420.00

Company 5
Issue number: 142
Total: 468.00

Company 6
Issue number: 142
Total: 252.00

我希望它讀起來像……

**Issue number: 142**
Company 1 Total 480
Company 2 Total 468
etc etc I.e grouping them into issue numbers. 

這是我的代碼...

$sql = "
SELECT bf_total_cost
     , bf_date_added
     , ib_issue_number
     , companyname
     , contacts_id
     , bf_id
     , bf_company_id
     , ib_booking_form_number 
  FROM contacts
     , booking_form
     , issues_booked 
 WHERE ib_issue_number >= 141 
   AND ib_issue_number <= 165 
   AND bf_date_added >= '2014-11-01' 
   AND bf_date_added <= '2016-08-31' 
   AND contacts_id = bf_company_id 
   AND bf_id = ib_booking_form_number 
 ORDER 
    BY ib_issue_number ASC;
";

$result = mysql_query($sql) or die (mysql_error());

$row = mysql_fetch_array($result) or die (mysql_error());
while($row = mysql_fetch_array($result)) {

echo '<ul>';
echo '<li>'.$row['companyname'] .'</li>';
echo '<li>'.$row['ib_issue_number'] .'</li>';
echo '<li>'.$row['bf_total_cost'] .'</li>';
echo '</ul>';
}

在MySQL中使用聚合:

 SELECT sum(bf_total_cost) ... GROUP BY ib_issue_number, bf_company_id

這將按發行編號和公司ID將每一行分組。 然后sum()將返回每個分組的總成本。

如果您只想按發行號分組,請從“分組依據”中刪除bf_company_id。

您可以在從結果中獲取行的while ,在while循環中創建嵌套/分組數組:

$result = mysql_query($sql) or die (mysql_error());

$groupedArray = array();
while($row = mysql_fetch_assoc($result)) {
    $groupedArray[$row['ib_issue_number']][] = $row;
}

然后,您可以將其輸出為嵌套的HTML列表:

echo "<ul>";
foreach ($groupedArray as $issueNumber => $group) {
    echo "<li>issue number: $issueNumber <ul>";
    foreach ($group as $row) {
        echo "<li>Company: {$row['companyname']}; Total {$row['bf_total_cost']}</li>";
    }
    echo "</ul></li>";
}
echo "</ul>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM