簡體   English   中英

MySQL從一列到回顯表分組相同的值

[英]mysql grouping same value from one column to echo table

我正在努力展示我想要的結果。 我需要創建一個表,該表可以對機架列進行分組,機架列將是表的名稱,內容來自布局列是該表的數據。


 $sql = ' SELECT  rack, id, GROUP_CONCAT(layout) as grouped_name FROM sorting_items GROUP BY rack ORDER BY rack ASC';

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {


        echo '<td>'.$row['rack'].' </td>';
        echo '<table style=" border: 1px solid black; width:100%"><tr>';
        echo '<td>'.$row['grouped_name'].' </td>'; 
        echo '</tr></table>';
    }
} else {
    echo "0 results";
}
$conn->close();


我的桌子是這個

╔══════════╦══════╗
║  layout  ║ rack ║
╠══════════╬══════╣
║  cisco1  ║ case1║
║  cisco2  ║ case1║
║  cisco3  ║ case1║
║  juniper ║ case2║
║  cisco4  ║ case2║
╚══════════╩══════╝

我目前正在得到這個

╔══════════╦══════════════════════╗
║   case1  ║ cisco1,cisco2,cisco2 ║
╚══════════╩══════════════════════╝
╔══════════╦══════════════════════╗
║   case2  ║ juniper,cisco4       ║
╚══════════╩══════════════════════╝

希望通過以上代碼實現這一目標

╔══════════╗     
║  case1   ║ 
╠══════════╣
║  cisco1  ║ 
║  cisco2  ║ 
║  cisco3  ║ 
╚══════════╝

╔══════════╗
║  case2   ║ 
╠══════════╣
║  juniper ║ 
║  cisco4  ║ 
╚══════════╝

看起來您在結果數據循環中實際想要的是這樣的東西,它將逗號分隔開grouped_name字段,然后在單獨的表行上輸出每個值:

while($row = $result->fetch_assoc()) {
    echo '<table style=" border: 1px solid black; width:100%">';
    echo '<tr><th>'.$row['rack'].' </th></tr>';
    foreach (explode(',', $row['grouped_name']) as $name) {
        echo '<tr><td>'.$name.' </td></tr>'; 
    }
    echo '</table>';
}

暫無
暫無

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

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