dedecms获取上级栏目id
时间 : 2023-12-21 19:42:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
最佳答案
在DedeCMS中,想要获取上级栏目的ID,可以通过以下几种方法:
方法一:使用PHP代码查询数据库
在dedecms的数据库中,栏目信息保存在`dede_archives`表和`dede_arctype`表中。可以通过以下代码来获取上级栏目的ID:
$aid = $_GET['aid']; // 获取当前栏目的ID
$sql = "SELECT reid FROM dede_arctype WHERE id = (SELECT typeid FROM dede_archives WHERE id = $aid)";
$result = $dsql->GetOne($sql);
$reid = $result['reid']; // 获取上级栏目的ID
方法二:使用DedeCMS自带的函数
DedeCMS提供了`GetOneType($id)`函数用于获取指定ID的栏目信息。可以使用以下代码来获取上级栏目的ID:
$aid = $_GET['aid']; // 获取当前栏目的ID
$arc = GetOneArchive($aid);
$typeid = $arc['typeid']; // 获取当前栏目的typeid
$type = GetOneType($typeid);
$reid = $type['reid']; // 获取上级栏目的ID
方法三:使用PHP代码递归查询上级栏目
你也可以通过PHP代码递归查询上级栏目的ID。可以使用以下代码来实现:
function getSuperiorCategory($typeid, &$categoryIds) {
global $dsql;
$sql = "SELECT `id`, `reid` FROM `dede_arctype` WHERE `id` = $typeid";
$result = $dsql->GetOne($sql);
if ($result['reid'] != 0) {
$categoryIds[] = $result['reid'];
getSuperiorCategory($result['reid'], $categoryIds);
}
}
$aid = $_GET['aid']; // 获取当前栏目的ID
$typeid = GetOneArchive($aid)['typeid']; // 获取当前栏目的typeid
$categoryIds = [];
getSuperiorCategory($typeid, $categoryIds);
// 上级栏目的ID数组
$reid = end($categoryIds);
以上是三种获取上级栏目的ID的方法,你可以根据自己的需要选择其中一种方法来实现。
其他答案
在dedecms中,获取上级栏目ID可以通过以下步骤实现:
1. 首先,我们需要获取当前栏目的ID,可以使用`$typeid = $GLOBALS['typeid'];`来获取。
2. 接下来,我们需要获取当前栏目的父栏目ID,可以通过以下代码实现:
```php
$row = $dsql->GetOne("SELECT * FROM `#@__arctype` WHERE id = {$typeid}");
$reid = $row['reid'];
3. 最后,我们可以通过获取到的父栏目ID,再次获取上级栏目的ID,可以使用以下代码获取:
```php
$row = $dsql->GetOne("SELECT id FROM `#@__arctype` WHERE id = {$reid}");
$reid2 = $row['id'];
通过以上步骤,我们就能够获取到上级栏目的ID了。可以根据具体需要进行相应的处理。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章