第一个表:是栏目分类表
字段:cid       类型:int      是所有分类的编号(包含一级、二级、三级)
字段:FatherID  类型:int      是此分类的上级分类第二个表:是文章内容表
字段:cid       类型:int      是所有分类的编号(包含一级、二级、三级
字段:title     类型:varchar  文章标题
字段:Commend   类型:int      文章推荐( 0 为不推荐   1 为推荐 )注明:2个表的cid字段是相连的我的要求是:
不管网页浏览者进入网站前台浏览任何一个栏目,都按一下要求显示相关数据。1、当网页浏览者进入网站前台一级分类页面,即显示一级分类下所有推荐的文章。
2、当网页浏览者进入网站前台二级分类页面,即显示二级分类下所有推荐的文章。
3、当网页浏览者进入网站前台三级分类页面,即显示三级分类下所有推荐的文章。

解决方案 »

  1.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    keli123456789 (keli123456789)
      '截至2010-03-30 20:26:28  用户结帖率0.00%  当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  3.   


    create table class --分类表
    (
    cid int,
    fatherid int
    )
    gocreate table news--文章表
    (
    cid int,
    title varchar(20),
    commend int
    )
    go
    insert into class
    select 1,-1 union all
    select 2,1 union all
    select 3,2 union all
    select 4,3
    goinsert into news
    select 1,'一级分类',0 union all
    select 2,'二级分类',1 union all
    select 3,'三级级分类',1 union all
    select 4,'四级分类',1 
    go
    alter proc Proc_GetValue
    @grade int
    as
    ;WITH
    DEPTS AS(
        -- 定位点成员
        SELECT * FROM class where cid=@grade
        UNION ALL
        -- 递归成员, 通过引用CTE自身与Dept基表JOIN实现递归
        SELECT A.*
        FROM class A, DEPTS B
        WHERE A.fatherid = B.cid
    )
    select * from news where cid in (select cid from depts) and commend=1
    go
      

  4.   

    我还是把本页代码帖出来吧
    红色部分代码是我想输出的推荐文章
    数据连接上了,我控制的是读取10条同类栏目下的推荐文章
    可是现在只显示了1条信息,而且所有栏目都是同样的。可我的要求是:
    不管网页浏览者进入网站前台浏览任何一个栏目,都按一下要求显示相关数据。1、当网页浏览者进入网站前台一级分类页面,即显示一级分类下所有推荐的文章。
    2、当网页浏览者进入网站前台二级分类页面,即显示二级分类下所有推荐的文章。
    3、当网页浏览者进入网站前台三级分类页面,即显示三级分类下所有推荐的文章。
    <h2>
    <%
    Dim ID,rs,i,Cid
    ID=int(request.QueryString("ID"))
    'Call openConn() '打开数据库
    Response.Write (conn.execute("Select * from [fuke_Channel] where CID="& ID &"")(6))&" - 栏目</h2>" '输出类别名
    %><%
    'Dim rs,i '定义变量
    Set rs=conn.execute("Select * from [fuke_Channel] where FatherID="& ID &" ") '读取类别表数据,122是耳鼻喉
    i=0                 '//如果i=0是6的话,那么就只显示一行,多出自动换行
    While(Not rs.eof) '//循环列出类别名称及链接
    i=i+1
    %>
    <a href="NewsList.asp?ID=<%=rs(0)%>">【<%=rs(6)%>】</a> 
    <%
    'If i=3 or i=6 Then Response.Write("<br/>") '输出第三个及第六个后换行
     If i=1 or i=1 Then Response.Write("<br/>") '输出第三个及第六个后换行
    rs.moveNext '切记要加上“rs.moveNext”否则会出现死循环!
    Wend
    'Call rsClose()
    'Call connClose()
    %>
    <br/>
    <h2><b>■ 本栏最新资讯</b><br/></h2><!-- <b></b>是加粗文字 -->
    <%
    Set rs=conn.execute("Select * From [fuke_Content] where CID="& ID &" order by ID desc") '读取新闻内容表
    If Not rs.eof Then
    Dim PageSize
    PageSize=10 '每一页显示的条数
    Dim Count,page,pagecount,gopage '定义相关变量
    gopage="NewsList.asp?ID="&ID&"&amp;"
    Count=conn.execute("Select count(ID) from [fuke_Content] where CID="& ID &"")(0) '读取新闻总数
    page=int(request.QueryString ("page"))
    if page<=0 or page="" then page=1 '默认为第一页
    pagecount=(count+pagesize-1)\pagesize '计算出页数
    rs.move(pagesize*(page-1)) '将游标指到每一页的第一条记录
    For i=1 To PageSize '根据每一页的条数进行循环
    If rs.eof Then Exit For '如果循环到了尽头,则跳出循环
    %>
    <img src="Images/RedDot.gif" alt="" />
    <!--<a href="NewsShow.asp?ID=< %=rs(0)%>&page=1">< %=rs(3)%></a><br/>-->
    <a href="NewsShow.asp?ID=<%=rs(0)%>"><%=rs(3)%></a><br/>
    <%
    rs.moveNext
    Next
    response.write ("共:"&count&"条,"&page&"/"&pagecount&"页")
    if page-pagecount<0 then response.write "<br/><a href="""&gopage&"page="&page+1&""">下页</a> - <a href="""&gopage&"page="&pagecount&""">尾页</a>"
    if page>1 then response.write "<br/><a href="""&gopage&"page="&page-1&""">上页</a> - <a href="""&gopage&"page=1"">首页</a>"
    '//下面这一句,是让用户通过输入框输入页数,然后通过链接直接转向该页
    'if pagecount>1 then response.write "<br/><input name=""page"" format=""*N"" value="""&page&""" type=""text"" maxlength=""5"" emptyok=""true""/><br/><a href="""&gopage&"page=$(page)"">[跳转到该页]</a>"
    Else
    %>
    <!--本栏暂无资讯!-->
    <%
    Set rs=conn.execute("Select top 10 * From [fuke_Content] where Commend=1 order by Cid desc") '读取新闻内容表
    If Not rs.eof Then
    End If
    %> 
    <img src="Images/RedDot.gif" alt="" />
    <a href="NewsShow.asp?ID=<%=rs(0)%>"><%=rs(3)%></a><br/>

    <%
    End If
    'Call rsClose()
    Call connClose()
    %>