2012-11-02 92 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;