PHP MYSQL 连接

我正在为一群当地企业做一些志愿工作,在新冠疫情期间为弱势群体提供食物。


订单示例:


Order No |  Customer Name | Address | Quantity | Item Name | Notes

===================================================

 #1234     |     Freda Smith      |3 High St   |      1     |   Loaf Bread  | Wholemeal 

 #1234     |     Freda Smith      |3 High St   |      2     |   500ml Milk  | Skimmed

 #1234     |     Freda Smith      |3 High St   |      1     |   Tea         | Eng. Breakfast

我需要将订单号 #1234 的所有详细信息打印到一张票上,如下所示:


#1234, Freda Smith, 3 High St

     

1 X Loaf Bread, Wholemeal   

2 X 500ml Milk, skimmed  

1 X Tea, Eng. Breakfast

我已经玩过CONCATandCONCAT_GROUP并试图通过将SELECTHTML 格式分离来找出答案,但无法得到我需要的东西。我很接近,但没有雪茄!


编辑:


SELECT IS:             $sql =    "SELECT id,

                       Order_Number, 

                       Full_Name,

                       Address,

                       Time_To_Deliver,

                CONCAT(Quantity, Item_Name, Notes)

                FROM orders

                CONCAT_GROUP BY Order_Number";

                    

            $users = $mysqli->query($sql);

            while($user = $users->fetch_assoc()){


一只名叫tom的猫
浏览 102回答 1
1回答

互换的青春

您当前的设计有冗余数据,您应该通过维护订单和订单项目的单独表来标准化您的数据库结构,您还可以添加客户表。根据您当前的设计,您可以循环遍历所有行并有条件地显示每个订单号。只有一次。select id,    order_number,    full_name,    address,    time_to_deliver,    quantity,    item_name,    notesfrom ordersorder by order_number ascHereorder by子句很重要,这样您将获得每个订单的有序项目列表。一旦获得查询的所有结果,您就可以循环遍历数据$currentParent = false;while ($orderItem = $result->fetch_assoc()) {   if ($currentParent != $orderItem['order_number']) {        // display common detail of each order here        echo '<h1>' . $orderItem['order_number'] .' '. $orderItem['full_name'] .' '. $orderItem['address']'</h1>';        $currentParent = $orderItem['order_number'];    }    echo '<p>' . $orderItem['quantity'] .' '. $orderItem['item_name'] . ' '. $orderItem['notes'] .'</p>'; // here list rest of the information of order iterms     ...     }生成的标记将类似于<h1>#1234, Freda Smith, 3 High St</h1>    <p>1 X Loaf Bread, Wholemeal</p>    <p>2 X 500ml Milk, skimmed </p><h1>#1235, Freda Smith, 3 High St</h1>    <p>1 X Tea, Eng. Breakfast</p>//....虽然您可以直接在数据库级别使用聚合(请参阅 参考资料),但它具有字符限制的限制,可以调整该限制,但当您可以在应用程序层处理此类情况时,这不是一个好方法group_concat。Query for post and tags in same query
打开App,查看更多内容
随时随地看视频慕课网APP