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_*
已弃用。确保查看 mysqli
和 PDO
.
请注意,这可能会导致巨大的 IO 瓶颈,因为我们对跟踪的每一步都进行 1 次查询
编辑:使用您的 POST 参数:
echo getParent($_GET['category_id']);
假设您设置了 get 参数。
我写了一个 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_*
已弃用。确保查看 mysqli
和 PDO
.
请注意,这可能会导致巨大的 IO 瓶颈,因为我们对跟踪的每一步都进行 1 次查询
编辑:使用您的 POST 参数:
echo getParent($_GET['category_id']);
假设您设置了 get 参数。