如何列出没有重复值的下拉选项

Posted

技术标签:

【中文标题】如何列出没有重复值的下拉选项【英文标题】:How to list out dropdown option without duplicate value 【发布时间】:2014-08-07 01:09:42 【问题描述】:

目前我从数据库中检索“01/05/2014”和“01/06/2014”等日期记录并显示到选择选项中。

这是我的代码:

<label>Year</label>
   <select style="margin-right:20px;">
       <option value="--" selected="selected">--</option>
       <?php
         require('Retail/database_connection.php');
         if (@mysqli_connect_errno())
         
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
         

        $select_album_date= "SELECT DISTINCT photo_album_date FROM tblPhotoAlbum";
        $result = mysqli_query ($mydatabase, $select_album_date);
        if($result)
        
           while($row = mysqli_fetch_array($result))
           
            $date = $row['photo_album_date'];

            $arr = explode("/", $date);
            //Split date result into $day, $month, and $year
            list($month, $day, $year) = $arr;


            echo '<option>'.$year.'</option>';



           
        mysqli_close($mydatabase);
      ?>
  </select>

我得到的 $year 的输出将是 2014 年,2014 年是重复的。如何在我的下拉列表中只显示一个 2014?

【问题讨论】:

【参考方案1】:

你可以像这样得到不同的年份,

SELECT DISTINCT YEAR(STR_TO_DATE(photo_album_date,'%d/%m/%Y')) FROM tblPhotoAlbum

(未测试)

【讨论】:

【参考方案2】:

试试这个

while($row = mysqli_fetch_array($result))

     $date = $row['photo_album_date'];
     $arr = explode("/", $date);
     //Split date result into $day, $month, and $year
     list($month, $day, $year) = $arr;
     // save year into an array 
     $yr[] = $year;
     // echo only if year is not in array
     if(!in_array($year,$yr))
     echo '<option>'.$year.'</option>';
 

【讨论】:

以上是关于如何列出没有重复值的下拉选项的主要内容,如果未能解决你的问题,请参考以下文章

如何获取下拉列表的选定值的文本? [复制]

easyui combobox如何搞一个没有值的选项。

Easyui Datagrid 的Combobox 如何动态修改下拉选项,以及值的转换

EXCEL自动筛选下拉框只能列1000个数据?

如何在移动 Safari 的下拉列表中禁用选择选项 [重复]

如何在Angular 7中单击按钮时获取下拉列表的选定选项[重复]