在循环中摆脱PHP中的重复项

use*_*687 0 html php select duplicate-removal

所以这是我的PHP代码:

$sql1 = "SELECT year FROM reports ORDER BY year DESC";
$res1 = mysql_query($sql1);
while($row = mysql_fetch_array($res1)) {
    $selectYear = "
        <select id='select_year'>
            <option value='".$row['year']."'>".$row['year']."</option>
        </select>
    ";
}
Run Code Online (Sandbox Code Playgroud)

我想要它做的只是输出一年,而不是它现在正在做什么,每年输出一年,每年的每个月都有一个条目,所以同一年有12个条目,所以我的HTML是这样的:

<select id='select_year'>
    <option value='2013'>2013</option>
    <option value='2013'>2013</option>
    <option value='2013'>2013</option>
    <option value='2013'>2013</option>
    <option value='2012'>2012</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但这就是我真正想要的:

<select id='select_year'>
    <option value='2013'>2013</option>
    <option value='2012'>2012</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这是按年度排序所有结果,以便用户可以使用选择来选择他们想要查看的年份.

Tho*_*ley 8

有很多方法可以做到这一点,但最简单的方法可能是:

$sql1 = "SELECT DISTINCT year FROM reports ORDER BY year DESC";
Run Code Online (Sandbox Code Playgroud)

使用时DISTINCT,数据库只返回每个值中的一个.然后,您不必浪费任何资源处理PHP端的数据.