PHP 需要到达主线 parent

PHP need to reach the main parent

我写了一个 PHP 代码来查找类别的 parent 并回显 parent_id, 它工作正常,但是如果这个 parent 有一个 parent 我需要它继续循环直到它找到应该有 category_parent = 0 的主 parent,谁能告诉我如何这样做?

PHP

$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);
  }
}

免责声明:未经任何方式测试。

然而,这假定如果您的条目没有父级,则它是他自己的父级。

当然,mysql_* 已弃用。确保查看 mysqliPDO.

请注意,这可能会导致巨大的 IO 瓶颈,因为我们对跟踪的每一步都进行 1 次查询


编辑:使用您的 POST 参数:

echo getParent($_GET['category_id']);

假设您设置了 get 参数。