2014-09-20 44 views
0

在MySQL數據庫中,我有3列:類別,名稱和電話。表看起來是這樣的例子:PHP/MySQL - 按類別創建表值「樹」

Work  David  777444555 
School  Susan  776457333 
Work  Peter  743234556 
Work  Diana  765432456 
Hockey  Ben  786432567 
School  Tom  765434566 
School  John  765457865 
etc... 

因此,如何從這個表做PHP「樹」的結果(排序從A到Z)?我需要的是這樣的例子:

Hockej: 
- Ben, 786432567 
- etc. 
School: 
- John, 765457865 
- Susan, 776457333 
- Tom, 765434566 
Work: 
- David, 777444555 
- Diana, 765432456 
- Peter, 743234556 
+0

你還嘗試過什麼嗎?請發佈您的代碼。 – bansi 2014-09-20 12:26:15

回答

0
SELECT category, 
     GROUP_CONCAT(CONCAT(Name, ', ', Phone) ORDER BY Name SEPARATOR ';') Names 
FROM 
    yourtable 
GROUP BY category 
0

我寫了這個代碼,它似乎工作,但請檢查一下,如果沒有錯誤,可以使麻煩:-)

$DBSERVER = 'server'; 
$DBUSER = 'user'; 
$DBPASS = 'password'; 
$DB = 'database'; 

$login = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Could not connect: " . mysql_error()); 
mysql_select_db($DB, $login) or die ('Can\'t use database : ' . mysql_error()); 
mysql_query("SET NAMES UTF8"); 



$query = "SELECT * FROM tree ORDER BY category, name"; 
$result = mysql_query($query); 

if(!$result){ 
    echo mysql_error() . " - " . mysql_errno(); 
} 

else{ 
    $memory = ''; 
    while ($row = mysql_fetch_assoc($result)){ 
    if ($row['category'] != $memory){ 
     $memory = $row['category']; 
     echo "<b>".$memory."</b><br>"; 
    } 
    echo " - ".$row['name'].", ".$row['phone']."<br>"; 
    } 
} 

這段代碼可以沒有錯誤嗎?