Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php消除select中的重复项_Php_Sql_Select - Fatal编程技术网

使用php消除select中的重复项

使用php消除select中的重复项,php,sql,select,Php,Sql,Select,我想消除用PHP创建的选择下拉列表中的所有重复项 创建下拉列表的PHP代码如下所示: public static function getDropdownlist($conn) { //Initialize dropdown list //-------------------------------------------------- $ddl_query = "select * from MIS_EMPLOYEES"; $stmt_ddl = oci_par

我想消除用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,但失败。

最简单的方法是修改查询以选择不同的ID、位置或按ID分组、位置。除此之外,您还需要构建一个数组并在其上使用array_unique。

在SQL语句中,只需将其更改为收集您感兴趣的不同元素即可

由于在上述代码中,值和文本只使用了两个值,类似这样的方法应该可以工作:

SELECT ID, POSITION
FROM MIS_EMPLOYEES
GROUP BY ID, POSITION

在这里显示您应用了array_unique的数组。这不是一个真正的PHP问题,而是一个您需要不同的查询问题。将查询更改为返回按ID和职位分组的MIS_员工的ID和职位,以获得不同的组合。您返回的信息可能比查询所需的信息要多,选择的方式*是一种代码味道。请改为修改您的查询。感谢两位的回答第二个答案更接近,解决方案如下:我更改了行,从$ddl_query=SELECT*来自MIS_EMPLOYEES;to$ddl_query=按职位从MIS_员工组中选择职位;再次感谢你