简体   繁体   English

PHP / MySQL-按类别从表值创建“树”

[英]PHP/MySQL - Make a “tree” from table values by category

In MySQL database I have 3 columns: Category, Name and Phone. 在MySQL数据库中,我有3列:类别,名称和电话。 Table looks like this example: 表格如下例所示:

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

So how to do a "tree" outcome with PHP from this table (sort from A to Z)? 那么如何使用该表中的PHP(从A到Z排序)执行“树”结果? I need something like this example: 我需要类似以下示例的内容:

Hockej:
 - Ben, 786432567
 - etc.
School:
 - John, 765457865
 - Susan, 776457333
 - Tom, 765434566
Work:
 - David, 777444555
 - Diana, 765432456
 - Peter, 743234556
SELECT category,
       GROUP_CONCAT(CONCAT(Name, ', ', Phone) ORDER BY Name SEPARATOR ';' ) Names
FROM
    yourtable
GROUP BY category

I wrote this code and it seems to work, but please check it, if there is no mistakes that could make troubles :-) 我写了这段代码,它似乎可以正常工作,但是请检查它,如果没有错误可能会引起麻烦:-)

$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>";
  }
}

Is this code okay without mistakes? 这段代码可以正确执行吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM