日期:2014-05-17  浏览次数:20935 次

■■想了一下午没想出来,请教一个调用数据显示排列的问题■■
数据库的结构大体这样的
id         type             title           addtime
1         单选题       题目标题1  
3         多选题       题目标题3
8         多选题       题目标题8
9         问答题       题目标题9
12       单选题       题目标题12
15       单选题       题目标题15
27       多选题       题目标题27
28       问答题       题目标题28
...
======================显示出来的是这样的
一、单选题
1.题目标题1
2.题目标题12
3.题目标题15
二、多选题
4.题目标题3
5.题目标题8
6.题目标题27
三、问答题
7.题目标题9
8.题目标题28
====================================
这样该如何写?关键是如何判断每个大的题目类型,然后所有的题目序号还得依次排列出来,我想了一下午也不知道该如何写sql语句好点,一条sql查询可以实现吗?各位帮帮忙吧

------解决方案--------------------
试试
select * from [table] order by type,id

------解决方案--------------------
function GetInfo(typeName)
set rs=Server.CreateObject( "Adodb.Recordset ")
sql= "select * from 你的数据库 where type= ' "&typeName& " ' "
rs.open sql,conn,1,1
do while not rs.eof
GetInfo=rs( "title ")& " <br> "
rs.movenext
loop
rs.close:set rs=nothing
end function
GetInfo( "单选题 ")
GetInfo( "多选题 ")
GetInfo( "问答题 ")

------解决方案--------------------
加上序号:
function GetInfo(typeName)
set rs=Server.CreateObject( "Adodb.Recordset ")
sql= "select * from 你的数据库 where type= ' "&typeName& " ' "
rs.open sql,conn,1,1
do while not rs.eof
GetInfo=rs( "id ")&rs( "title ")& " <br> "
rs.movenext
loop
rs.close:set rs=nothing
end function

response.Write( "一、单选题 <br> ")
GetInfo( "单选题 ")
response.Write( "二、多选题 <br> ")
GetInfo( "多选题 ")
response.Write( "三、问答题 <br> ")
GetInfo( "问答题 ")
------解决方案--------------------
这样可以得到循环序号:
i=0
do while not rs.eof
i=i+1
GetInfo=i&rs( "title ")& " <br> "
rs.movenext
loop
------解决方案--------------------
那就稍微麻烦点,首先要判断山一次的循环次数,然后设置i的初始值
------解决方案--------------------
那就用两个镶套循环,一个专门处理序号,另一个负责列标题,你试试看 弄不好我再帮你!