2014-05-13 66 views
0

我有一個簡單的表(mgap_orders),其中包含客戶訂單。多個具有相同的ID(mgap_ska_id),我只想從表中拉出5條記錄並顯示全部五條記錄。顯示來自查詢的5行數據

我可以通過以下查詢和PDO輕鬆獲得一條記錄,但是如何顯示5行而不是僅顯示一行?

$result_cat_item = "SELECT * FROM mgap_orders WHERE mgap_ska_id = '$id' GROUP BY mgap_ska_id"; 

    while($row_cat_sub = $stmt_cat_item->fetch(PDO::FETCH_ASSOC)) 
    { 
    $item=$row_cat_sub['mgap_item_description']; 
    $item_num=$row_cat_sub['mgap_item_number']; 
    $item_type=$row_cat_sub['mgap_item_type']; 
    $item_cat=$row_cat_sub['mgap_item_catalog_number']; 
    $item_ven=$row_cat_sub['mgap_item_vendor']; 
    $item_pur=$row_cat_sub['mgap_item_percent_purchased']; 
    $item_sales=$row_cat_sub['mgap_item_sales']; 
    } 
+0

使用限制5簡單 –

+0

你知道哪5行嗎? –

+0

擺脫那個笨蛋GROUP BY – Strawberry

回答

2

使用limit 5然後把結果在一個數組,像這樣:

$result_cat_item = "SELECT * FROM mgap_orders WHERE mgap_ska_id = '$id' GROUP BY mgap_ska_id LIMIT 5"; 

$items = array(); 

while($row_cat_sub = $stmt_cat_item->fetch(PDO::FETCH_ASSOC)) 
{ 
    $items['item']  = $row_cat_sub['mgap_item_description']; 
    $items['item_num'] = $row_cat_sub['mgap_item_number']; 
    $items['item_type'] = $row_cat_sub['mgap_item_type']; 
    $items['item_cat'] = $row_cat_sub['mgap_item_catalog_number']; 
    $items['item_ven'] = $row_cat_sub['mgap_item_vendor']; 
    $items['item_pur'] = $row_cat_sub['mgap_item_percent_purchased']; 
    $items['item_sales'] = $row_cat_sub['mgap_item_sales']; 
} 

然後,你可以這樣做:

foreach($items as $item) { 
    // echo $item['item'] or whatever 
} 

編輯:或者你可以跳過把它們在數組中只需使用while()即可完成您需要處理的數據。

+1

您可能還想要以有意義的方式對行進行排序(最新的5?按價格?等等) –

+0

@Samsquanch - 感謝您的幫助;像魅力一樣工作! – DataGuy