[英]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.