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_名称不同