php - 递归函数类别数据库

标签 php mysql hierarchical-data

我希望创建一个我还没有想法的递归函数

这是我从数据库中获取类别的代码

  <?php
  $sql = mysql_query("SELECT * FROM categories WHERE category_parent = '1' ORDER BY lft ASC");
  while($row = mysql_fetch_array($sql)) {
  echo "<li><a href='/{$row['category_safe_name']}/'>{$row['category_name']}</a>";
  $sql2 = mysql_query("SELECT * FROM categories WHERE category_parent = '{$row['category_id']}'");
  if(mysql_num_rows($sql2) > 0)
  echo "<ul>";
  while($row2 = mysql_fetch_array($sql2)) {
  echo "<li><a href='/{$row2['category_safe_name']}/'>{$row2['category_name']}</a><li>";
  }
  if(mysql_num_rows($sql2) > 0)
  echo "</ul>";
  echo "</li>";
  }
  ?>

目前这个样子

Top Category (category_id = 1)
   Category
       Sub Category

我的代码适用于类别和子类别。我打算做的是让我的代码支持无限的子类别

欢迎任何帮助和建议。

谢谢

最佳答案

我会这样做:

<?php
function getChildren($id=1) {
  $sql = mysql_query("SELECT * FROM categories WHERE category_parent = '$id' ORDER BY lft ASC");
  echo "<ul>";
  while($row = mysql_fetch_array($sql)) {
    echo "<li><a href='/{$row['category_safe_name']}/'>{$row['category_name']}</a>";
    getChildren($row['category_id']);
    echo "</li>";
  }
  echo "</ul>";
}

getChildren();
?>

关于php - 递归函数类别数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3300468/

相关文章:

php - 如何在try/catch语句laravel中记录错误?

Android JSON 服务器响应可能无效错误

mysql - 在 MySQL 中检索具有层次结构的数据

php - 如何在 Twig 中设置多维数组?

javascript - 在浏览器中按后退或前进按钮时,URL 会发生变化,但内容不会发生变化

php - 如何在 php 中显示 TreeView ?

java - 为什么 Spring 的 jdbcTemplate.batchUpdate() 这么慢?

php - 从mysql 5.5降级到5.1,utf-8 General_ci

sql - 如何从平面表中提取层次结构?

javascript - 剑道 UI 网格 : Drag and Drop Hierarchy not working