thinkphp实现无限分级 进行最顶一级的查找
程序员文章站
2024-03-22 11:59:10
...
该过程实现通过用户tid查询所属最*经销商的信息
一、建立相对应的数据表
请注意pid和tid的外键关联关系,最*的pid为0。
二、建立相对应的控制器
class tree{
//定义一个空的数组
static public $list = array();
//递归函数 传入所有用户信息和查询的用户tid 通过pid识别相对应的父级的栏目id
public function getTree($data,$tid){
//通过foreach循环获取的数据
foreach ($data as $v) {
//判断当前数据是否存在传输的id
if($v['tid'] == $tid){
//存在 判断是否经销商
if($v['isDear'] == 1){
//是 将当前用户资料保存赋值于数组
self::$list[] = $v;
}else{
//否 将当条数据所属pid及数据传输 重复上条判断
self::getTree($data,$v['pid']);
}
}
}
return self::$list;
}
//接下来在方法中调用
public function getDear(){
//通过get获取所需查询的用户id
$tid = input('get.tid');
//获取所有用户资料
$res = db('info')->select();
//调用递归函数
$res = self::getTree($res,$tid);
//所获得的数据在view中显示
$this->assign('data',$res);
return $this->fetch('dear');
}
}
三、在前台模板中显示出来
<table>
<tr>
{volist name='data' id='vo'}
<td>用户名:{$vo['name']}</td>
<td>pid:{$vo['pid']}</td>
<td>是否经销商:{$vo['isDear']}</td>
{/volist}
</tr>
</table>
四、最后显示结果如下