2012-08-08 114 views
0

我在將MySQL結果輸出到HTML時遇到問題。我有一個MySQL的結果返回:按列分組MySQL結果

| title  | category_name | from_where | 
--------------------------------------------- 
| Title num 1 | Journal  | iidl_file | 
--------------------------------------------- 
| Title num 2 | Books   | iidl_file | 
--------------------------------------------- 
| Title num 3 | Announcement | iidl_post | 
--------------------------------------------- 
| Title num 4 | News   | iidl_post | 
--------------------------------------------- 

我怎樣才能在HTML預覽此數據是這樣的:

iidl_file 
- Title num 1 (Journal) 
- Title num 2 (Books) 

-------------------------- 

iid_post 
- Title num 3 (Announcement) 
- Title num 4 (News) 
+0

這是一個顯示問題,無關mysql本身。 – 2012-08-08 03:50:58

+0

使用%2 == 0來破解數據..在MySQL中使用LIMIT ..choice是你的....給一個嘗試兄弟做一些研發,並提供給我們的代碼然後:) – swapnesh 2012-08-08 03:52:36

回答

0

這是我會做:

SELECT `title`, `category_name`, `etc` FROM `table_name` ORDER BY `from_where`; 

如果你有許多記錄,確保from_where列中有一個索引,您將受益匪淺。

下面是一些僞代碼:

$groups = array(); 
foreach ($rows as $row) { 
    $from_where = $row['from_where'] 
    if (! isset($groups[$from_where])) { 
     $groups[$from_where] = array(); 
    } 
    $groups[$from_where][] = $row; 
} 

現在你$groups將包含由from_where列鍵陣列。

這樣做,你實際上不需要必須甚至在查詢中發出ORDER BY。

0

只是一個想法,只要使用普通的MySQL結果循環使用這樣的代碼,而不是測試,但希望這將有助於

$from_all = array(); 
$from_all[$from_where][] = array('title'=>$title,'category_name'=>$category_name) 

然後

foreach($from_all as $from_where=>$array) { 
    echo $from_where 
    foreach($array as $row) { 
     echo $row['title']; 
     echo $row['category_name']; 
    } 
}