从下拉列表中删除重复项

3

我正在使用下面的代码将LastNames列表返回到表单的下拉菜单中。

<?php
    include 'conn.inc.php';
    $sql_dropdown_lastname = "SELECT LastName FROM Individuals";
    $sql_run_lastname = odbc_exec($conn_general, $sql_dropdown_lastname);
        echo "<table><form action='index.php' method='POST'><tr><td>Individual Last Name</td><td><select name='IndivSurname'>";
            while($lastname_row = odbc_fetch_array($sql_run_lastname)){
                $AllLastName=$lastname_row['LastName'];
                    echo"<option value='$AllLastName'>$AllLastName</option>";
            }

        echo"</select></td>
                </tr>
                <tr>
                    <td><input type='submit' value='submit' name='submit'></td>
                </tr>
                </form>
        </table>";

?>

然而,有几个条目是重复的。我该如何从下拉列表中消除任何重复项?

提前致谢, J


3
“select distinct . . .” 的意思是如何选择不重复的内容。 - Gordon Linoff
如果在任何情况下前缀或后缀有空格(在呈现中不可见),distinct 可能不会产生预期的结果。以小写姓氏为键,原样姓氏为值($arr[$keyval]=$contentval)创建自己的列表,然后使用 foreach 循环在我看来更合理... 但你需要添加几行额外的代码... - Raphioly-San
1个回答

5
如果它们确实是重复的(而不仅仅是姓氏相同的人),您可以按照以下方式操作:
SELECT DISTINCT LastName FROM Individuals
请注意,如果这些人不同但有相同的姓氏,您需要在查询中添加另一个字段,例如:

SELECT DISTINCT LastName, FirstName FROM Individuals

它们是重复的,因为它们是姓氏相同的人,但是 SELECT DISTINCT 命令解决了这个问题。谢谢 :) - joebegborg07
如果您想确保那些具有相同姓氏但不同的人员,您需要在选择中添加另一个字段。我已经进行了编辑以显示该字段。 - nomistic
谢谢,我计划稍后这样做。 - joebegborg07

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,