2017-12-28 36 views
-1

시도했지만 시도했지만이 것을 알아낼 수 없습니다. 나는 일련의 일련의 선택 메뉴를 사용하여 mySQL 데이터베이스에서 옵션을 가져 왔습니다. 체인이 모두 잘 작동하고 전송 유형과 연료 유형에 대해 고유 한 값만 반환하려는 경우를 제외하면 모든 것이 효과적입니다.mySQL SELECT DISTINCT가 작동하지 않습니다.

여기에 내 현재 쿼리 :

<?php 
$conn = new mysqli('localhost', 'XXXXX', 'XXXXX', 'XXXXX') 
or die('Cannot connect to db'); 

$result = $conn->query("select id, model_id, gearbox from derivatives ORDER BY gearbox ASC"); 

    echo '<select name="gearbox" id="gearbox">'; 
    echo '<option value="" selected>Please Choose ...</option>'; 

    while ($row = $result->fetch_assoc()) { 
     $id = $row['id']; 
     $modelid = $row['model_id']; 
     $gearbox = $row['gearbox']; 
     echo '<option class="'.$modelid.'">'.$gearbox.'</option>'; 
    }; 

    echo "</select>"; 
?> 

이 출력 다음 선택 메뉴 :

Automatic 
Manual 
:

Automatic 
Automatic 
Automatic 
Automatic 
Automatic 
Manual 

내가 사용할 수있는 두 가지 옵션 만 표시에 대한 싶습니다 반면

도움을 주시면 대단히 감사하겠습니다. 당신 만의 고유 기어 박스 값을 걱정하는 경우 당신이 할 수있는 SELECT DISTINCT를 사용하여 시도하지만 기쁨

+1

* "DISTINCT를 선택했지만 기쁨이 없었 음"* - 시도한 것을 게시해야합니다. GROUP BY를 추가하십시오. –

답변

-1

없었을 :

SELECT DISTINCT gearbox from derivatives ORDER BY gearbox ASC

이 있지만, 당신은 단지 원하기 때문에, 당신에게 idmodel_id 필드를받지 않습니다 기어 박스를 표시하려면 ...

SELECT gearbox from derivatives GROUP BY gearbox 또한 작업이 완료되며 추가 집계 필드를 반환 할 수 있습니다 (예 : max(id) 또는 min(model_id)).

+0

감사 Paqash. 그게 내가 다른 클래스에서 다른 클래스를 가져와야 할 때 연쇄를 깨뜨린다고 생각한 것입니다. 의견을 모두 사용하고 필요한 모든 열 데이터를 가져 와서 어떻게 다시 작성합니까? – Darren

+0

id와 model_id 중 원하는 자동 기어 박스가있는 행이 5 개있는 경우? 너도 신경 써? – paqash

+0

마음에 들지 않는다면, 그냥 max (id)와 max (model_id)를 추가하면됩니다. 신경 쓰면 더 많은 논리가 필요합니다. – paqash