海蘭,PHP購物車顯示訂單
我創建了培訓目的的PHP店。我希望用戶有可能查看他放置的最後一個訂單 - 但我有問題要意識到這一點。
我在我的數據庫這些表:
客戶(孩子姓名,地址,...)
產品(PID,PRODUCT_NAME,PRODUCT_DESCRIPTION,價格)
訂單 - > OID,孩子,支付,地址,狀態
order_detail - > OID,日期,PID,數量)
好吧,我創建了一個函數,其中一個查詢從數據庫中獲取的所需數據
function showOrder($kid)
{
$db = database();
$orders = $db->query ("SELECT * FROM orders
INNER JOIN order_detail on orders.oid=order_detail.oid
INNER JOIN products on order_detail.pid = products.pid
WHERE kid='$kid' ");
$orders = $orders->fetchAll();
$lastoid = 0;
foreach($orders as $i){
while($lastoid != $i['oid']) {
$lastoid = $i['oid'];
echo "Ordernr: ".$lastoid."<br/>";
echo "Produktname: ".$i['product_name']."<br>";
echo "Menge: ".$i['quantity']."<br/>";
echo "Preis: ".$i['price']."<br/>";
echo "Status: ".$i['status']."<br/>";
echo "<br/><br/><hr/>";
}
}
}
我想要做的:在一個表( 列表中的單筆訂單 - > oderid |產品名稱|數量|價格|狀態) 如果訂單僅包含一種產品,但是如果訂單變得更大(2種產品),則僅顯示第一種產品。
$數據庫看起來是這樣的:
Array
(
[0] => Array
(
[oid] => 1
[0] => 1
[kid] => 1
[1] => 1
[2] => 1
[date] => 2012-04-17
[3] => 2012-04-17
[pid] => 1
[4] => 1
[quantity] => 2
[5] => 2
[payment] => Nachnahme
[6] => Nachnahme
[street] => teststraße
[7] => teststraße
[number] => 2
[8] => 2
[zip] => 2222
[9] => 2222
[city] => Teststadt
[10] => Teststadt
[status] => in Bearbeitung
[11] => in Bearbeitung
[12] => 1
[product_name] => Acer Laptop
[13] => Acer Laptop
[price] => 29.00
[14] => 29.00
[details] => blabla
[15] => blabla
[category] => Laptop
[16] => Laptop
[date_added] => 2012-04-05
[17] => 2012-04-05
)
[1] => Array
(
[oid] => 1
[0] => 1
[kid] => 1
[1] => 1
[2] => 1
[date] => 2012-04-17
[3] => 2012-04-17
[pid] => 2
[4] => 2
[quantity] => 2
[5] => 2
[payment] => Nachnahme
[6] => Nachnahme
[street] => teststraße
[7] => teststraße
[number] => 2
[8] => 2
[zip] => 2222
[9] => 2222
[city] => Teststadt
[10] => Teststadt
[status] => in Bearbeitung
[11] => in Bearbeitung
[12] => 2
[product_name] => Grundig TV
[13] => Grundig TV
[price] => 22.00
[14] => 22.00
[details] => blabla
[15] => blabla
[category] => TV
[16] => TV
[date_added] => 2012-04-05
[17] => 2012-04-05
)
[2] => Array
(
[oid] => 1
[0] => 1
[kid] => 1
[1] => 1
[2] => 1
[date] => 2012-04-17
[3] => 2012-04-17
[pid] => 7
[4] => 7
[quantity] => 1
[5] => 1
[payment] => Nachnahme
[6] => Nachnahme
[street] => teststraße
[7] => teststraße
[number] => 2
[8] => 2
[zip] => 2222
[9] => 2222
[city] => Teststadt
[10] => Teststadt
[status] => in Bearbeitung
[11] => in Bearbeitung
[12] => 7
[product_name] => Nokia Handy
[13] => Nokia Handy
[price] => 69.00
[14] => 69.00
[details] => blabla
[15] => blabla
[category] => Handy
[16] => Handy
[date_added] => 2012-04-06
[17] => 2012-04-06
)
[3] => Array
(
[oid] => 2
[0] => 2
[kid] => 1
[1] => 1
[2] => 2
[date] => 2012-04-17
[3] => 2012-04-17
[pid] => 8
[4] => 8
[quantity] => 1
[5] => 1
[payment] => Vorauskasse
[6] => Vorauskasse
[street] => musterstraße
[7] => musterstraße
[number] => 1
[8] => 1
[zip] => 1111
[9] => 1111
[city] => stadt
[10] => stadt
[status] => in Bearbeitung
[11] => in Bearbeitung
[12] => 8
[product_name] => PC groß
[13] => PC groß
[price] => 66.00
[14] => 66.00
[details] => blabla
[15] => blabla
[category] => Computer
[16] => Computer
[date_added] => 2012-04-06
[17] => 2012-04-06
)
)
**剛一說明:**使用'使用fetchall(PDO :: FETCH_ASSOC);'如果不是您只能使用關聯的密鑰,這將節省內存和迭代速度 – 2012-04-22 00:07:25