如何在php上从数据库创建类别路径
我有一个如下所示的数据库。我需要从子类别创建类别的路径 网站显示,家长>孩子>孩子>孩子如何在php上从数据库创建类别路径,php,mysql,arrays,database,Php,Mysql,Arrays,Database,我有一个如下所示的数据库。我需要从子类别创建类别的路径 网站显示,家长>孩子>孩子>孩子 SELECT * FROM category ORDER BY category_id; +-------------+----------------------+--------+ | category_id | name | parent | +-------------+----------------------+--------+ | 1 |
SELECT * FROM category ORDER BY category_id;
+-------------+----------------------+--------+
| category_id | name | parent |
+-------------+----------------------+--------+
| 1 | ELECTRONICS | NULL |
| 2 | TELEVISIONS | 1 |
| 3 | TUBE | 2 |
| 4 | LCD | 2 |
| 5 | PLASMA | 2 |
| 6 | PORTABLE ELECTRONICS | 1 |
| 7 | MP3 PLAYERS | 6 |
| 8 | FLASH | 7 |
| 9 | CD PLAYERS | 6 |
| 10 | 2 WAY RADIOS | 6 |
+-------------+----------------------+--------+
当我选择“7 | MP3播放器”时,我希望显示如下
电子产品>便携式电子产品>MP3播放器
我在这里使用的是哪种技术?请尝试下面的代码。通过递归函数,这是可能的
function fetchCategoryTree($parent = 0, $spacing = '', $user_tree_array = '') {
if (!is_array($user_tree_array))
$user_tree_array = array();
$sql = "SELECT `category_id`, `name`, `parent` FROM `category` WHERE 1 AND `parent` = $parent ORDER BY cid ASC";
$query = mysql_query($sql);
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_object($query)) {
$user_tree_array[] = array("id" => $row->category_id, "name" => $spacing . $row->name);
$user_tree_array = fetchCategoryTree($row->category_id, $spacing . '---', $user_tree_array);
}
}
return $user_tree_array;
}
$categoryList = fetchCategoryTree();
?>
<select>
<?php foreach($categoryList as $cl) { ?>
<option value="<?php echo $cl["id"] ?>"><?php echo $cl["name"]; ?></option>
<?php } ?>
</select>
函数fetchCategoryTree($parent=0,$spacing='',$user\u tree\u array=''){
如果(!is_数组($user_tree_数组))
$user_tree_array=array();
$sql=“从`category`中选择`category\u id`、`name`、`parent`,其中1和`parent`=$parent ORDER BY cid ASC”;
$query=mysql\u查询($sql);
if(mysql_num_rows($query)>0){
while($row=mysql\u fetch\u object($query)){
$user\u tree\u array[]=array(“id”=>$row->category\u id,“name”=>space.$row->name);
$user\u tree\u array=fetchCategoryTree($row->category\u id,$spating.'--',$user\u tree\u array);
}
}
返回$user\u tree\u数组;
}
$categoryList=fetchCategoryTree();
?>
试试下面的代码。通过递归函数,这是可能的
function fetchCategoryTree($parent = 0, $spacing = '', $user_tree_array = '') {
if (!is_array($user_tree_array))
$user_tree_array = array();
$sql = "SELECT `category_id`, `name`, `parent` FROM `category` WHERE 1 AND `parent` = $parent ORDER BY cid ASC";
$query = mysql_query($sql);
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_object($query)) {
$user_tree_array[] = array("id" => $row->category_id, "name" => $spacing . $row->name);
$user_tree_array = fetchCategoryTree($row->category_id, $spacing . '---', $user_tree_array);
}
}
return $user_tree_array;
}
$categoryList = fetchCategoryTree();
?>
<select>
<?php foreach($categoryList as $cl) { ?>
<option value="<?php echo $cl["id"] ?>"><?php echo $cl["name"]; ?></option>
<?php } ?>
</select>
函数fetchCategoryTree($parent=0,$spacing='',$user\u tree\u array=''){
如果(!is_数组($user_tree_数组))
$user_tree_array=array();
$sql=“从`category`中选择`category\u id`、`name`、`parent`,其中1和`parent`=$parent ORDER BY cid ASC”;
$query=mysql\u查询($sql);
if(mysql_num_rows($query)>0){
while($row=mysql\u fetch\u object($query)){
$user\u tree\u array[]=array(“id”=>$row->category\u id,“name”=>space.$row->name);
$user\u tree\u array=fetchCategoryTree($row->category\u id,$spating.'--',$user\u tree\u array);
}
}
返回$user\u tree\u数组;
}
$categoryList=fetchCategoryTree();
?>
使用递归函数获取数据。如何使用递归函数使用递归函数获取数据。如何使用递归函数如果遇到任何问题,请告诉我……)如果您遇到任何问题,请告诉我……)