Как вывести выпадающий список без повторяющегося значения

#php

#php

Вопрос:

В настоящее время я извлекаю записи ДАТ, такие как «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>';
 }