2015-05-21 17 views
2

我想消除使用PHP創建的選擇下拉列表中的所有重複項。在使用php選擇時消除重複項

創建的下拉列表中我的PHP代碼如下:

public static function getDropdownlist($conn) 
{ 
    //Initialize dropdown list 
    //-------------------------------------------------- 
    $ddl_query = "select * from MIS_EMPLOYEES"; 
    $stmt_ddl = oci_parse($conn, $ddl_query); 
    oci_execute($stmt_ddl); 
    //A default value -- this will be the selected item in the dropdown ## 
    $prosopiko = JRequest::getVar('bodies', 0); 
    if ($prosopiko == 0) 
     $default = 0; 
    else 
     $default = $prosopiko; 
    //Initialize array to store dropdown options ## 

     $options = array(); 
    // $options = array_unique(); 
     $options[] = JHTML::_('select.option', '0', 'Επιλέξτε'); 
     while (($row = oci_fetch_array($stmt_ddl, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { 
     $options[] = JHTML::_('select.option', $row['ID'], $row['POSITION']); 
     } 

    //Create <select name="month" class="inputbox"></select> ## 
     $dropdown = JHTML::_('select.genericlist', $options, 'bodies', 'class="inputbox"', 'value', 'text', $default); 

     return $dropdown; 
    } 

} 

但它帶來的一切從Oracle表寫的重複。

如何消除重複?我試過array_unique但我失敗了。

+0

顯示你在這裏應用'array_unique'的數組。 –

+5

這不是一個真正的PHP問題,它是一個你需要的不同查詢問題。改變查詢以從'ID'和'POSITION'分組的'MIS_EMPLOYEES'返回'ID'和'POSITION'(獲得不同的組合)。你可能會返回比你需要的查詢更多的信息('SELECT *'是代碼味道)。 –

+0

請修改您的查詢。 – Vickrant

回答

3

在你的SQL語句,因爲你只在對價值和文本上面的代碼中使用兩個數值簡單地改變它來收集不同的元素,你有興趣

,這樣的事情應該工作:

SELECT ID, POSITION 
FROM MIS_EMPLOYEES 
GROUP BY ID, POSITION 
+0

謝謝兩位答案,第二個更接近和解決方案是以下我改變了行, 從 $ ddl_query =「select * from MIS_EMPLOYEES」; 至 $ ddl_query =「從位置MIS_EMPLOYEES組中選擇位置」; 再次感謝您 – dc03kks

3

最簡單的選擇是將您的查詢修改爲SELECT DISTINCT ID, POSITIONGROUP BY ID, POSITION。除此之外,你需要建立一個數組,並使用array_unique。 。