http://blog.csdn.net/btbtd/archive/2007/01/12/1481562.aspx三级联动的数据库查询...(Access)
SELECT a.cat1id, a.cat1, IIf(b.cat2id,b.cat2id,0) AS cat2id, IIf(b.cat2,b.cat2,'无分类') AS cat2, IIf(c.cat3id,c.cat3id,0) AS cat3id, IIf(c.cat3,c.cat3,'无分类') AS cat3
FROM (sqCat1 AS a LEFT JOIN sqCat2 AS b ON a.cat1id=b.cat1id) LEFT JOIN sqCat3 AS c ON (b.cat1id=c.cat1id) AND (b.cat2id=c.cat2id)
UNION SELECT  a.cat1id, a.cat1, IIf(b.cat2id,b.cat2id,0) AS cat2id, IIf(b.cat2,b.cat2,'无分类') AS cat2, 0 AS cat3id, '无分类' AS cat3
FROM (sqCat1 AS a LEFT JOIN sqCat2 AS b ON a.cat1id=b.cat1id) LEFT JOIN sqCat3 AS c ON (b.cat1id=c.cat1id) AND (b.cat2id=c.cat2id);
UNION SELECT  a.cat1id, a.cat1, 0 AS cat2id,'无分类' AS cat2,0 AS cat3id, '无分类' AS cat3
FROM (sqCat1 AS a LEFT JOIN sqCat2 AS b ON a.cat1id=b.cat1id) LEFT JOIN sqCat3 AS c ON (b.cat1id=c.cat1id) AND (b.cat2id=c.cat2id);你再join 一个表就OK了, rs.GetString
 var rs=new data();
  rs.cmd="'select * from 1_cat_all', conn, 1";
  
  var sStr=rs.GetString(false, false, true, "2,-1,'##','##@', 'empty'");
  
  rs=null;晕了, 我都集成类了, 你自己消失理解吧...

解决方案 »

  1.   

    一张表? 无限级分类?
    id,classid_1,classid_2,classid_3,classid_4俺的联动类需要 ID,文本 成对使用
    不过如果没有的话 可以 xx as xx 生成
    不过这个需要对SQL有一定的理解, 还是闪人, .....
      

  2.   

    MenuArr[1]="欧洲|||亚洲|||非洲|||大洋洲|||北美洲|||南美洲"                              //洲名|||...
    MenuArr[2]="欧洲###德国|||欧洲###法国|||北美洲###美国|||北美洲###加拿大|||亚洲###中国"  //洲名###国名|||...
    MenuArr[3]="中国###北京|||中国###上海|||美国###华盛顿|||美国###纽约|||德国###柏林"      //国名###城市名|||...
    MenuArr[4]="北京###朝阳区|||上海###徐汇区|||广州###天河区|||纽约###曼哈顿区"      //国名###城市名|||...
    从数据库选出数据,然后组成类似的数组不就可以了?
    你那里不会,不会写sql还是不会组装数据?
      

  3.   

    这个代码简单点。。可我还是循环不出来啊。。怎么回事?
      <html>   
      <head>   
      <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">   
      <title>无标题文档</title>   
      </head>   
        
      <BODY>     
      <SELECT   NAME="s1"><option>需要JavaScript才能正确显示</SELECT>     
      <SELECT   NAME="s2"></SELECT>     
      <SELECT   NAME="s3"></SELECT>     
      <SELECT   NAME="s4"></SELECT>     
      <SCRIPT   LANGUAGE="JavaScript">     
      <!--     
      //选择框的名字     
      selector   =   [   "s1",   "s2",   "s3",   "s4"   ];     
      //选择项:   "名字",   "值",   子选择     
      menu   =   [     
      "地球","1",     
      [     
      "中国","86",     
      [     
      "北京","BJ",     
      [     
      "--","1",null     
      ],     
      "四川","SC",     
      [     
      "成都","28",null,     
      "乐山","",null,     
      "攀枝花","",null,     
      "自贡","",null,     
      "德阳","",null,     
      "绵阳","",null     
      ]     
      ],     
      "米国","1",     
      [     
      "加利福尼亚","CA",     
      [     
      "旧金山","1",null,     
      "洛杉矶","2",null     
      ],     
      "华盛顿","WA",     
      [     
      "西雅图","seattle",null     
      ]     
      ]     
      ],     
      "火星","2",     
      [     
      "大峡谷","86",     
      [     
      "小山丘","BJ",     
      [     
      "A地区","28",null,     
      "B地区","",null,     
      "C地区","",null     
      ]     
      ]     
      ]     
      ];     
        
      function   wizz(level)     
      {     
      if(   level   ==   0   )     
      a   =   menu;     
      else     
      {     
      str   =   "menu";     
      for(   i=0;   i<level;   i++   )     
      str   +=   "["   +   (document.all[selector[i]].selectedIndex   *   3   +   2)   +   "]";     
      a   =   eval(str);     
      }     
      if(   a   ==   null   )   return;     
      s   =   document.all[selector[level]];     
      i   =   s.length;     
      while(   i   >   0   )   s.options[--i]   =   null;     
      while(   i   <   Math.floor(a.length/3)   )     
      s.options[i]   =   Option(   a[i*3],   a[i++*3+1]   );     
      s.onchange   =   Function("wizz("   +   (level+1)   +   ")");     
      wizz(level+1);     
      }     
      wizz(0);     
      //-->     
      </SCRIPT>     
      </BODY>     
      </HTML>
      

  4.   

    按上面的数组形式,一个数据库要有4张表,查询每张表之后得到数据还要再组成类似的数组.
    对于初学者有点难度,在哪位老大有空写写"sql"及组装数组的代码?
      

  5.   

    用ajax动态生成吧,数据多了是很慢
      

  6.   

    这个对我来说很容易...不过我不知道你的具体数据,,
     
    你如果确实搞不定, 把表数据用 ado recordset 选取所有数据, 然后用  save(sPath, 1) 选项保存为
    ADTG 文件格式, 上传到某个地方, 俺下载下来弄
      

  7.   

    :( 我不用IM的, 
    发到我 邮箱里:
    [email protected]
      

  8.   


    sql="select * from ld group by classid_1,classid_2,classid_3"
    rs.open sql,conn
    dim ct_zhou,ct_guo,ct_sheng,ct_qu
    dim str_zhou,str_guo,str_sheng,str_qudo while rs.eof
    '对每条记录做分析,因为记录按顺序排列,所以当本记录所记载的值与上一条记录不同时,是新数据,记录入字符串,否则不记继续处理后续的数据。
       if isempty(ct_zhou) then ct_zhou=rs(1)
       if ct_zhou<>rs(1) then
          ct_zhou=rs(1)
          str_zhou=str_zhou+ct_zhou+"|||"
       end if   if isempty(ct_guo) then ct_guo=rs(2)
       if ct_guo<>rs(2) then
          ct_guo=rs(2)
          str_guo=str_guo+ct_zhou+"###"+ct_guo+"|||"
       end if   if isempty(ct_sheng) then ct_sheng=rs(3)
       if ct_sheng<>rs(3) then
          ct_sheng=rs(3)
          str_sheng=str_sheng+ct_guo+"###"+ct_sheng+"|||"
       end if'对于最后一级实际可以直接组装字符串即可
       if isempty(ct_qu) then ct_qu=rs(4)
       if ct_qu<>rs(4) then
          ct_qu=rs(4)
          str_qu=str_qu+ct_sheng+"###"+ct_qu+"|||"
       end if   rs.next
    loop
    '输出
    response.write "MenuArr[1]="+str_zhou
    response.write "MenuArr[2]="+str_guo
    response.write "MenuArr[3]="+str_sheng
    response.write "MenuArr[4]="+str_qu
    '结合你的数据库试一下吧
      

  9.   

    到 ACCESS 里建一个查询, 内容:
    SELECT classid_1, classid_1, classid_2, classid_2, classid_3, classid_3, classid_4, classid_4
    FROM yy;
    保存名为: v_getCat2
    下载: aj1.asp 
    http://files.myopera.com/btbtd/jscript_ss/test/aj1.7z看看这是不是你要的效果...
      

  10.   

    晕了, 名字应该为 查询名应为 v_getCat
      

  11.   

    问题已解决哈哈。用别的办法的。。感谢各位不慎支持。。再次谢啦。thank you very much!
      

  12.   

    共享了,,
    地址:http://community.csdn.net/Expert/topic/5300/5300171.xml?temp=.8182947