Sql 如何在不重复数据的情况下从数据库填充下拉菜单?

Sql 如何在不重复数据的情况下从数据库填充下拉菜单?,sql,database,search,menu,dynamic-data,Sql,Database,Search,Menu,Dynamic Data,我正在尝试创建一个搜索字段,它是一个动态填充的下拉菜单。查询数据库和填充菜单的代码如下所示: <form action="<?=$SERVER['PHP_SELF'];?>" method="post" name="nameSearch"> <label for="nameMenu"> <p>Choose a name from the drop down menu<br /> to retrieve all the data

我正在尝试创建一个搜索字段,它是一个动态填充的下拉菜单。查询数据库和填充菜单的代码如下所示:

<form action="<?=$SERVER['PHP_SELF'];?>" method="post" name="nameSearch">
<label for="nameMenu">  
<p>Choose a name from the drop down menu<br />  
to retrieve all the data for that person.</p>  
</label>
<select name="dateMenu" id="dateMenu">
    <option value="0" selected="selected">Choose a name</option>
    <?php
      $sql_search = 'SELECT id, name from $tbl_name';
      $query_search = mysql_query($sql_search);
      while($row = mysql_fetch_array($query_search))
      {
        echo '<option value=' . $row['id'] . '>' . $row['name'] . '</option>';
      }
    ?>
</select>
<input type="submit" name="searchName" value="Find">
</form>
返回的菜单选项如下所示:

----------------------------------------------------------  
| id | name |    uniqueImage     |    date    |   time   |   
----------------------------------------------------------  
| 1  | John | uniqueImage001.png | 2011-03-11 | 14:21:20 | 
| 2  | James| uniqueImage002.png | 2011-03-11 | 14:24:30 | 
| 3  | Joe  | uniqueImage003.png | 2011-03-11 | 14:26:10 | 
| 4  | John | uniqueImage004.png | 2011-03-11 | 14:40:10 | 
| 5  | Joe  | uniqueImage005.png | 2011-03-11 | 14:56:32 | 
| 6  | Joe  | uniqueImage006.png | 2011-03-11 | 15:02:50 | 
| 7  | James| uniqueImage007.png | 2011-03-11 | 15:21:25 | 
| 8  | John | uniqueImage008.png | 2011-03-11 | 15:26:30 | 
----------------------------------------------------------  
<option value="1">John</option>  
<option value="2">James</option>  
<option value="3">Joe</option>  
<option value="4">John</option>  
<option value="5">Joe</option>  
<option value="6">Joe</option>  
<option value="7">James</option>  
<option value="8">John</option>  
约翰 詹姆斯 乔 约翰 乔 乔 詹姆斯 约翰 我需要的是让下拉菜单更像这样:

<option value="1">John</option>  
<option value="2">James</option>  
<option value="3">Joe</option>
约翰 詹姆斯 乔
通过这种方式,我可以获得与特定用户关联的所有唯一图像。我不需要在查询中返回数据库中的每个名称,只需要每个名称只返回一次。我想我可能需要建立一个关系数据库方案,但我试图避免这种情况。有没有其他方法来设置这个?谢谢。

将SQL更改为
从$tbl\u name中选择不同的id、名称
将数据库调用更改为:

SELECT id, name from $tbl_name group by id, name

问题是,您的id列不是此人的唯一列。您必须将其更改为仅使用“名称”列。例如,约翰是1和4,你想用哪一个?是的,我看到了。我以为我需要身份证,但事实证明我根本不需要。我取出id后,您的解决方案确实有效。谢谢。抱歉,请尝试选择id,名称与$tbl_名称不同