[英]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.