我有 2 个要从中提取数据的表。第一个表称为类别,其结构如下:
---------------------------------
id | name | parent |
--------------------------------- |
1 | Desktop Courses | 0 |
2 | Adobe | 1 |
3 | CS6 | 2 |
4 | IT Courses | 0 |
5 | Microsoft | 4 |
6 | Server 2008 | 5 |
我正在使用以下代码将数据显示为列表:
<?php
//Connect to mysql server
$cn = mysql_pconnect("server", "username", "password");
mysql_select_db("database");
$rs = mysql_query("SELECT id, parent, name FROM course_categories", $cn);
$childrenTree = array();
$categoryNames = array();
while($row = mysql_fetch_array($rs)){
list($id, $parent, $name) = $row;
$categoryNames[(string)$id] = $name;
$parent = (string)$parent;
if(!array_key_exists($parent, $childrenTree))
$childrenTree[$parent] = array();
$childrenTree[$parent][] = (string)$id;
}
function renderTree($parentid = "0"){
global $categoryNames;
global $childrenTree;
if($parentid != "0") echo "<li> ", $categoryNames[$parentid], "\n";
$children = $childrenTree[$parentid];
if(count($children) > 0){ //If node has children
echo "<ul>\n";
foreach($children as $child)
renderTree($child);
echo "</ul>\n";
}
if($parentid != "0") echo "</li>\n";
}
renderTree();
?>
所以这显然会像这样提取数据:
Desktop Courses
Adobe
CS6
IT Courses
Microsoft
Server 2008
现在我还有一个表格,显示结构如下的课程:
---------------------------------------------------
id | categoryid | course |
---------------------------------------------------|
1 | 3 | Photoshop CS6 |
2 | 6 | Active Directory |
现在我想将课程中的数据合并到类别列表中,但我不确定如何做到这一点,以便它显示如下:
Desktop Courses
Adobe
CS6
Photoshop CS6
IT Courses
Microsoft
Server 2008
Active Directory
任何帮助将非常感激。