部门级别表department
dept_id superior_dept_id dept_name
1 0 市场营销部
2 0 人力资源部
3 1 主板营销室
4 1 显卡营销室
5 2 档案管理室
6 2 文件传达室
设想实现的功能是:用户登入系统后,根据用户所在部门dept_id,判断当前部门有没有下级部门。
如果没有下级部门, 则根据当前部门dept_id,输出当前部门名称dept_name
如果有下级部门, 则查询表department,获取其下属所有部门dept_id,并根据dept_id,输出用户当
前部门名称dept_name及其子部门名称dept_name
哪位大侠出来支招,小弟在此谢过了!!!
dept_id superior_dept_id dept_name
1 0 市场营销部
2 0 人力资源部
3 1 主板营销室
4 1 显卡营销室
5 2 档案管理室
6 2 文件传达室
设想实现的功能是:用户登入系统后,根据用户所在部门dept_id,判断当前部门有没有下级部门。
如果没有下级部门, 则根据当前部门dept_id,输出当前部门名称dept_name
如果有下级部门, 则查询表department,获取其下属所有部门dept_id,并根据dept_id,输出用户当
前部门名称dept_name及其子部门名称dept_name
哪位大侠出来支招,小弟在此谢过了!!!
你应该还有一张用户表吧。
$result=mysql_query("SELECT * FROM department WHERE superior_dept_id='$dept_id'");
$count=mysql_num_rows($result);
if($count>0){
//有子级存在,获得子级名称
while($row=mysql_fetch_array($result)){
$childs_show.=$row['dept_name'].'<br />';
}
}
//读取当前名称
$result=mysql_query("SELECT * FROM department WHERE dept_id='$dept_id'");
$current_dept=mysql_fetch_array($result);
//输出
echo $current_dept['dept_name'],'<br />',$childs_show;
?>
(
id int identity(1,1) primary key,
name varchar(20) not null,
superId int , --上级id
re varchar(50)
)
go
insert into catalog values('所有类别',0,'所有类别')
insert into catalog values('酒类',1,'酒类')
insert into catalog values('饮料类',1,'饮料类')
insert into catalog values('食品类',1,'食品类')
insert into catalog values('白酒',2,'白酒')
insert into catalog values('啤酒',2,'啤酒')
insert into catalog values('冷冻食品',4,'冷冻食品')
insert into catalog values('速热食品',4,'速热食品')
insert into catalog values('即食食品',4,'即食食品')
--所有类别(1)
-----酒类(2)
--------白酒(5)
--------啤酒(6)
-----饮料类(3)
-----食品类(4)
--------冷冻食品(7)
--------速热食品(8)
--------即食食品(9)
go
select a.name as '父类',b.name as '子类' from catalog a right join catalog b on a.id=b.superId
--------------------------------------------------------------------
查询结果
上级名称 名称
NULL 所有类别
所有类别 酒类
所有类别 饮料类
所有类别 食品类
酒类 白酒
酒类 啤酒
食品类 冷冻食品
食品类 速热食品
食品类 即食食品
------------------------------------------------------------------
希望是你想要的