簡體   English   中英

在While循環中的表中拆分ID

[英]Split ID's Up In Tables In While Loop

我有以下數據庫表:

AWARD_ID   |  NOMINEE_ID   |  VOTER_ID  |  MULTI_CODE
------------------------------------------------------
5          | 3             |  1         |  9326
5          | 4             |  1         |  9326
5          | 5             |  3         |  8746

我需要在按MULTI_CODE分組的表中顯示這些結果,例如:

所以看起來像

<h1>Multi Code: 9326</h1>
<table>
<tr>
<td>Nominee: 3</td><td>Nominee: 4</td>
</tr>
</table>

<h1>Multi Code: 8746</h1>
<table>
<tr>
<td>Nominee: 5</td>
</tr>
</table>

到目前為止,這是我的SQL + PHP:

$nomineedetails = mysqli_query($con,"SELECT AWARD_ID, NOMINEE_ID, VOTER_ID, MULTI_CODE 
FROM b_awards_votes WHERE AWARD_ID = '5'");
$multi_code = -1;
while($row = mysqli_fetch_array($nomineedetails))
{
$awardID = $row['AWARD_ID'];
$nomineeID = $row['NOMINEE_ID'];
$voterID = $row['VOTER_ID'];
$multiCode = $row['MULTI_CODE'];

print "<h2>$multiCode</h2>";

if ($multi_code != $multiCode) {

print "<table><tr>";

$multi_code = $multiCode;
}

print "<td>Nominee: $nomineeID</td>";";

}
</tr></table>

有了這個我得到:

 8746

 9326

 Nominee: 3

 9326

 Nominee: 4 Nominee: 5

為什么我使9326超過提名3?

首先,我建議您按MULTI_CODE對結果進行排序,以便在遍歷結果時進行正確的排序。

然后,在循環中,始終與多代碼一起打印標題,無論與前一個代碼是否不同。

請看一下這段代碼。 它未經測試,因此請注意其中可能存在錯誤:

$nomineedetails = mysqli_query($con,"SELECT AWARD_ID, NOMINEE_ID, VOTER_ID, MULTI_CODE 
FROM b_awards_votes WHERE AWARD_ID = '5' ORDER BY MULTI_CODE ASC");
$multi_code = -1;
while($row = mysqli_fetch_array($nomineedetails))
{
    $awardID = $row['AWARD_ID'];
    $nomineeID = $row['NOMINEE_ID'];
    $voterID = $row['VOTER_ID'];
    $multiCode = $row['MULTI_CODE'];

    if ($multi_code != $multiCode) {
        if($multi_code !== -1) {
            print "</table>";
        }
        print "<h2>$multiCode</h2>";
        print "<table>";

        $multi_code = $multiCode;
    }

    print "<tr><td>Nominee: $nomineeID</td></tr>";
}

暫無
暫無

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

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