【问题标题】:Merge rows of item column having the same date column and display items in single row in PHP合并具有相同日期列的项目列的行并在PHP中以单行显示项目
【发布时间】:2021-11-17 08:42:14
【问题描述】:

我正在制作一个在线购物车网站,客户必须在一个表格中查看他/她的所有订单,其中包含所有订单信息,如商品名称、价格、订购日期等。我想按日期对每个订单进行分组并在一行中显示相同日期的项目。

我的桌子是这样的:

Orders Date Ordered
item1 11-23-2021
item2 11-23-2021
item3 12-30-2021

我希望它看起来像这样:

Orders Date Ordered
item1, item2 11-23-2021
item3 12-30-2021

PHP:

<table>
  <tr>
    <th>Orders</th>
    <th>Date Ordered</th>
  </tr>

  <?php
   $showOrder = mysqli_query($conn, "SELECT * FROM orderdetails WHERE dateOrdered = '11-23-2021'
                            GROUP BY orderDate");

   while ($row = mysqli_fetch_array($showOrder)){
                    $item = $row['item'];
                    $date = $row['dateOrdered']; ?>
  <tr>
    <td><?php echo "<p>".$item."</p>"; ?></td>
    <td><?php echo "<p>".$date."</p>"; ?></td>
  </tr>
<?php } ?>
</table>

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您可以在 MySQL 查询中使用 GROUP_CONCAT。例如,

    SELECT GROUP_CONCAT(orders), date_ordered FROM orderdetails WHERE dateOrdered = '11-23-2021' GROUP BY orderDate
    

    我假设您的 orderDate 表有 orders 和 date_ordered 字段,您可以根据您的实际表列名称进行修改。

    您可以阅读您自己的分隔符等详细信息。here

    【讨论】:

    • 太棒了!我还添加了 URL,您可以在其中阅读更多关于 GROUP_CONCAT 的信息!
    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多