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