2012-02-08 104 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 

,我想按類型組,並使用PHP 讓剛剛假設這將是預期的代碼

<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很多它會理解把它在選擇框..

+1

你想查詢什麼或PHP腳本?順便說一句,你到目前爲止嘗試過什麼? – 2012-02-08 06:42:29

+0

顯然你不是在那裏創建一個mysql組... – 2012-02-08 06:54:14

回答

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

你要麼需要用where子句基於該類型運行多個查詢:

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

,或者您需要查詢所有行並根據您的代碼按類型劃分他們類型。循環瀏覽結果並將其放入用於填充HTML的單獨列表中。 ORDER BY在這裏可能會有所幫助,所以您可以在循環查看結果時跟蹤類型的更改時間。

相關問題