【问题标题】:mysql grouping same value from one column to echo tablemysql将一列中的相同值分组到回显表
【发布时间】:2019-06-07 15:33:36
【问题描述】:

我正在努力展示我正在寻找的结果。我需要创建一个表格,它可以对机架列进行分组,这将是表格的名称,内容来自布局列是表格的数据。


 $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  ║ 
╚══════════╝

【问题讨论】:

    标签: php mysql sorting grouping


    【解决方案1】:

    看起来你在结果数据循环中真正想要的东西是这样的,它将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>';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2011-04-09
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多