PHP需要到达主父级

PHP需要到达主父级,php,mysql,Php,Mysql,我编写了一个PHP代码来查找一个类别的父类并回显父类id, 它可以正常工作,但是如果这个父级有一个父级,我需要它继续循环,直到它找到应该有category\u parent=0的主父级,有人能告诉我怎么做吗 PHP 假设设置了get参数。进行递归。调用相同的函数,确保至少在最坏的情况下退出循环。我不知道如何做递归函数@NasserKamal啊,这很简单,你可以用sql查询,你能描述你的分类表吗?我的分类表“分类id,分类名称,分类父项”;谢谢,请告诉我如何调用此函数来使用父id,我是否应该完全按

我编写了一个PHP代码来查找一个类别的父类并回显
父类id
, 它可以正常工作,但是如果这个父级有一个父级,我需要它继续循环,直到它找到应该有
category\u parent=0
的主父级,有人能告诉我怎么做吗

PHP


假设设置了get参数。

进行递归。调用相同的函数,确保至少在最坏的情况下退出循环。我不知道如何做递归函数@NasserKamal啊,这很简单,你可以用sql查询,你能描述你的分类表吗?我的分类表“分类id,分类名称,分类父项”;谢谢,请告诉我如何调用此函数来使用父id,我是否应该完全按照您在评论中所写的那样执行:)
echo getParent(4)
应该使用id 4来回显类别的主父级。但是当我这样做时,我得到的错误是:未定义的变量:id!您需要向它传递一个有效的id。正如我提到的:
getParent(4)
。我无法传递一个有效的id,我需要知道$\u请求的主父id['category\u id'];例如,如果url=products.php?category_id=3,那么它的父级应该是1,那么您的函数应该是1
$query_rsCategoryId = "SELECT * FROM categories 
WHERE category_id = '".$_REQUEST['category_id']."'";
$rsCategoryId = mysql_query($query_rsCategoryId, $connection);
$row_rsCategoryId = mysql_fetch_assoc($rsCategoryId);

do {
    $query_rsParent = "SELECT * FROM categories 
          WHERE category_id = '".$row_rsCategoryId['category_parent']."'";
    $rsParent = mysql_query($query_rsParent, $connection);
    $row_rsParent = mysql_fetch_assoc($rsParent);
    $totalRows_rsParent = mysql_num_rows($rsParent);

    if ($totalRows_rsParent > 0 ){
      echo $row_rsParent['category_id'];
    }
} while ($row_rsCategoryId = mysql_fetch_assoc($rsCategoryId));
function getParent($id) {    
  $query_rsCategoryId = "SELECT * FROM categories 
  WHERE category_id = '".$_REQUEST['category_id']."'";
  $rsCategoryId = mysql_query($query_rsCategoryId, $connection);
  $row_rsCategoryId = mysql_fetch_assoc($rsCategoryId);
  $parent = $row_rsCategoryId['category_parent'];
  if (mysql_num_rows($rsCategoryId) < 1) {
    // Error handling, entry with id $id not found
    return null;
  }
  if ($parent == 0) {
    return $id;
  } else {
    return getParent($parent);
  }
}
echo getParent($_GET['category_id']);