这个很简单啊,不就是树形列表吗?用父id的模式设计就搞定了,表如下:--科目表 create table course( id int, pid int, name varchar2(64) );--然后js脚本通过一层层pid来往下取数据。可以用connect by start with的方式取得所有数据,然后用js脚本形成++按钮的页面效果。
在论坛上看到过的例子,记录下来了,但是不记得原来地址, 盗用一下贴给你先: id parent_id name 300000001 0 供电公司 320000012 300000001 安全监察部 320000028 300000001 变电检修工区 320000069 320000028 变电维修二班 320000068 320000028 变电维修一班 create table test_connect ( id varchar2(100), parent_id varchar2(100), name varchar2(100) )select * from test_connect ;SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->') FROM (SELECT t.id, t.name FROM test_connect t START WITH t.id = '320000069' CONNECT BY t.id = PRIOR parent_id ORDER BY LEVEL );SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->') FROM (SELECT t.id, t.name FROM test_connect t START WITH t.id = 320000069 CONNECT BY t.id = PRIOR parent_id ORDER BY LEVEL DESC);
id列来标识每一个节点
pid是该节点的上层节点
desc是该节点描述 比如说语文、三年级……之类
如第一层001,002,003,004
第二层001001,001002,001003;002001,002002,002003
以此类推...
create table course(
id int,
pid int,
name varchar2(64)
);--然后js脚本通过一层层pid来往下取数据。可以用connect by start with的方式取得所有数据,然后用js脚本形成++按钮的页面效果。
300000001 0 供电公司
320000012 300000001 安全监察部
320000028 300000001 变电检修工区
320000069 320000028 变电维修二班
320000068 320000028 变电维修一班
create table test_connect (
id varchar2(100),
parent_id varchar2(100),
name varchar2(100)
)select * from test_connect ;SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->')
FROM (SELECT t.id, t.name
FROM test_connect t
START WITH t.id = '320000069'
CONNECT BY t.id = PRIOR parent_id
ORDER BY LEVEL
);SELECT wmsys.wm_concat(id), REPLACE(wmsys.wm_concat(NAME), ',', '->')
FROM (SELECT t.id, t.name
FROM test_connect t
START WITH t.id = 320000069
CONNECT BY t.id = PRIOR parent_id
ORDER BY LEVEL DESC);