2011-03-06 7 views
0

동적으로 채워진 드롭 다운 메뉴 인 검색 필드를 만들려고합니다. 이 코드는 데이터베이스 쿼리를 다음과 같이 메뉴가 채울 :데이터를 반복하지 않고 데이터베이스에서 드롭 다운 메뉴를 채우려면 어떻게해야합니까?

<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 | 
---------------------------------------------------------- 

메뉴 옵션 :

DB를 그렇게 보이는

<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> 

이렇게하면 특정 사용자와 관련된 모든 고유 이미지를 얻을 수 있습니다. 내 쿼리에서 반환 된 DB에 모든 이름이 필요하지는 않으며 각 이름은 한 번만 필요합니다. 나는 관계형 DB 체계를 설정할 필요가 있다고 생각하지만 이것을 피하려고 노력하고있다. 이것을 설정하는 다른 방법이 있습니까? 감사.

답변

0

로 SQL이 될 데이터베이스 호출을 변경 :

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

아니요, 같은 결과입니다. – AverageJoe

+0

문제는 사용자의 ID 열이 고유하지 않다는 것입니다. 당신은 이름 컬럼을 사용하기 위해 그것을 변경해야 할 것입니다. 예를 들어 John은 1과 4 중 어느 것을 사용 하시겠습니까? – Avitus

+0

예, 나는 그것을 보았습니다. 나는 이드가 필요하다고 생각했지만, 결국 나는 그것을 필요로하지 않는다. 당신의 해결책은 내가 이드를 꺼낸 후에 작동했습니다. 감사. – AverageJoe

1

변경 SELECT DISTINCT id, name from $tbl_name

+0

그것을 시도, 여전히 같은 결과를. – AverageJoe

+0

죄송합니다. SELECT id, $ tbl_name에서 DISTINCT 이름을 시도하십시오. – cusimar9

관련 문제