■■想了一下午没想出来,请教一个调用数据显示排列的问题■■

时间:2022-09-29 11:48:23
数据库的结构大体这样的
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查询可以实现吗?各位帮帮忙吧

11 个解决方案

#1


试试
select * from [table] order by type,id

#2


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("问答题")

#3


加上序号:
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("问答题")

#4


第一个问题就是,如何判断那个大类名,然后所有的题目序号还得依次连续显示出来
我开始也想用函数的,提交参数然后处理那个循环的序号,有没有办法一次性读出来吗?
group by type这样,那个大类名好说可是就是该让它怎么按我上面那个方式显示出来呢
愁死了

#5


nihaopp(大麦皮特),那个id不是连续的序号,我要的是总共循环的那个次数序号

#6


这样可以得到循环序号:     
         i=0
         do while not rs.eof
         i=i+1 
         GetInfo=i&rs("title")&"<br>"
         rs.movenext
         loop

#7


那样的话只能每个类别依次显示序号,不是所有的类别加起来依次显示的序号-_0

#8


那就稍微麻烦点,首先要判断山一次的循环次数,然后设置i的初始值

#9


那就用两个镶套循环,一个专门处理序号,另一个负责列标题,你试试看 弄不好我再帮你!

#10


谢谢啦,用函数的话应该可以实现的,只是多了几次查询,我先按这个方法试试看,晚点再来,谢谢nihaopp(大麦皮特)

#11


?

#1


试试
select * from [table] order by type,id

#2


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("问答题")

#3


加上序号:
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("问答题")

#4


第一个问题就是,如何判断那个大类名,然后所有的题目序号还得依次连续显示出来
我开始也想用函数的,提交参数然后处理那个循环的序号,有没有办法一次性读出来吗?
group by type这样,那个大类名好说可是就是该让它怎么按我上面那个方式显示出来呢
愁死了

#5


nihaopp(大麦皮特),那个id不是连续的序号,我要的是总共循环的那个次数序号

#6


这样可以得到循环序号:     
         i=0
         do while not rs.eof
         i=i+1 
         GetInfo=i&rs("title")&"<br>"
         rs.movenext
         loop

#7


那样的话只能每个类别依次显示序号,不是所有的类别加起来依次显示的序号-_0

#8


那就稍微麻烦点,首先要判断山一次的循环次数,然后设置i的初始值

#9


那就用两个镶套循环,一个专门处理序号,另一个负责列标题,你试试看 弄不好我再帮你!

#10


谢谢啦,用函数的话应该可以实现的,只是多了几次查询,我先按这个方法试试看,晚点再来,谢谢nihaopp(大麦皮特)

#11


?