1 回答

TA貢獻1797條經(jīng)驗 獲得超6個贊
您當前的設(shè)計有冗余數(shù)據(jù),您應(yīng)該通過維護訂單和訂單項目的單獨表來標準化您的數(shù)據(jù)庫結(jié)構(gòu),您還可以添加客戶表。
根據(jù)您當前的設(shè)計,您可以循環(huán)遍歷所有行并有條件地顯示每個訂單號。只有一次。
select id,
? ? order_number,
? ? full_name,
? ? address,
? ? time_to_deliver,
? ? quantity,
? ? item_name,
? ? notes
from orders
order by order_number asc
Hereorder by子句很重要,這樣您將獲得每個訂單的有序項目列表。一旦獲得查詢的所有結(jié)果,您就可以循環(huán)遍歷數(shù)據(jù)
$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>
//....
雖然您可以直接在數(shù)據(jù)庫級別使用聚合(請參閱 參考資料),但它具有字符限制的限制,可以調(diào)整該限制,但當您可以在應(yīng)用程序?qū)犹幚泶祟惽闆r時,這不是一個好方法group_concat
。Query for post and tags in same query
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報