如何在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();
?>

使用递归函数获取数据。如何使用递归函数使用递归函数获取数据。如何使用递归函数如果遇到任何问题,请告诉我……)如果您遇到任何问题,请告诉我……)