2012-02-08 3 views
-1

=) 메신저는 그룹에 잘 여기 유형에 따라 MySQL의에서 행이 내 예를 들어, 입력 및 출력 방법 ..이 문제의 방해 .. 그냥 할 수 있습니다 난 내 데이터베이스에 이러한이 말유형에 따라 mysql에서 행을 그룹화하는 방법은 무엇입니까?

|Name | address | type | 
a1 add1  t_spot 
c2 add2  t_acc 
e3 add3  t_res 
b1 add1  t_spot 
d2 add2  t_acc 
f3 add3  t_res 

와 나는 자신의 유형별로 그룹을 원하는 및

<select name='all'> 
<optgroup label="t_spot"> 
<option value=''>a1</option> 
<option value=''>b1</option> 
</optgroup> 

<optgroup label="t_acc"> 
<option value=''>c1</option> 
<option value=''>d1</option> 
</optgroup> 

<optgroup label="t_res"> 
<option value=''>e1</option> 
<option value=''>f1</option> 
</optgroup> 
</select> 

그것이 이해할 수있을 것이다 많은 ..thanks 도와주세요 예상되는 코드를 것입니다 그냥이를 가정 할 수 PHP 를 사용하여 선택 상자에 넣어 ..

+1

쿼리 또는 PHP 스크립트를 원하십니까? 그리고 BTW 지금까지 무엇을 시도 했습니까? –

+0

분명히 당신은 거기에 mysql 그룹을 만들지 않습니다 ... –

답변

1

쿼리에서 ORDER BY type.

그런 다음 데이터를 읽을 때 현재 유형을 추적하고 변경 사항을 확인하면 현재 블록을 끝내고 다음 블록을 시작한다는 것을 알고 있습니다. 의사 코드 :

select * from table order by type 
cur_type='' 
while(more rows) 
    if (type != cur_type) 
     if (cur_type != '') 
      terminate optgroup block 
     start new optgroup block 
    write option 
if (cur_type != '') 
    terminate optgroup block 
0

당신 중 하나는 절 유형에 따라 어디에 여러 쿼리를 실행해야합니다

select * from table where type = 't_spot' 
select * from table where type = 't_acc' 
... 

또는 당신은 모든 행을 쿼리해야하고 기반으로 코드에서 유형을 분할 유형. 결과를 반복하고 HTML을 채우는 데 사용되는 별도의 목록에 넣습니다. ORDER BY를 사용하면 결과를 반복 할 때 유형이 언제 바뀌는 지 계속 추적 할 수 있습니다.

관련 문제