2012-11-02 89 views
0

我需要查詢數據庫並返回不同的列值。查詢在foreach循環中,並根據數組而有所不同。在foreach循環內DISTINCT mysql查詢

$get_all_col_names = $this->db->list_fields($table_by_product); 
//This will return "X_SIZE", "X_PRINT", "X_QTY" 

現在我有需要分別獲得「X_SIZE」,「X_PRINT」和「X_QTY」的不同值一個foreach。

foreach ($X_types as $X) { 
    $this->db->select($X); 
    $this->db->distinct(); 
    $qX = $this->db->get($table_by_product); 
    return $qX->result_object(); 
} 

這個當前設置的問題是,它只是返回DISTINCT值爲X_QTY這是列表中的最後一個數組。

我需要爲數組中的所有鍵返回不同的值。我該如何做這項工作?謝謝您的幫助。

+0

我不知道,如果我知道你想要什麼......但使得在foreach返回,將在第一個循環之後執行它已經返回。如果您希望返回所有結果,則必須在foreach後返回,然後將結果添加到您返回的臨時數組中。 –

+0

是的,這是我想要做的。我嘗試過'$ X_types [] = array();'在foreach之前,然後在循環之後我該放什麼?你能否澄清並提出你的答案?你對我需要做的事情是正確的。謝謝 – fyz

+1

$ resultArray = array(); ($ X_types as $ X){ $ this-> db-> select($ X); $ this-> db-> distinct(); $ qX = $ this-> db-> get($ table_by_product); $ resultArray [] = $ qX-> result_object(); } return $ resultArray; –

回答

0

的問題是你的foreach循環中的第一輪之後就回去了,請嘗試以下操作:

$resultArray = array(); 
foreach ($X_types as $X) { 
    this->db->select($X)$this->db->distinct(); 
    $qX = $this->db->get($table_by_product); 
    resultArray[] = $qX->result_object(); 
} 
return $resultArray;