数据横向排列

yidao2004 2004-07-24 08:49:45
前言:
平时我们在读取数据库的时候,我们都喜欢习惯性的使用纵向排列,大家可能已经解决了横向排列,但是我还没有一个特别好的方法,再次,想大家请教了。



数据库结构:
id name score
1 a 100
2 b 200
3 c 300
4 d 400
5 e 500
6 f 600



实现的初步目标:
横向的个数假如设置为3个。就是这样排列了:
a b c
100 200 300

d e f
400 500 600



实现的高级目标:

横向的个数可以任意设置


下面的工作可能就是麻烦大家了,谢先


...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunjiujiu 2004-07-24
  • 打赏
  • 举报
回复
先按照你上面描述,建了一个表,我命名为test,有三列:ID,Name,Score,我向其中添加了7条数据,测试成功,你试试吧,呵呵,热死我了
简单的写了注视,看能看懂不

不过要注意:
1\这种方式,当数据量太大的时候,涉及到指针的来回移动,可能会影响速度


<%@ Language=VBScript %>
<%
Set Conn=server.CreateObject ("ADODB.CONNECTION")
DB_ConnectionString="Provider=SQLOLEDB;User ID=sa;PASSWORD=;SERVER=eLong;DataBase=test"
Conn.Open DB_ConnectionString
set rs=server.CreateObject("ADODB.recordset")
set rs = server.CreateObject("ADODB.recordset")
sql = "select * from test"
rs.open sql,conn,3,1
%>
<table width="245" border="1">
<%
i = 4 ' 横向列数
do while not rs.eof
%>
<tr>
<%
k = 0
for j = 1 to i
if rs.eof then exit for ' 如果到尾了,就退出for循环
k = k + 1 ' 没有到尾部,则记录数据指针已经移动了一次了

' 先显示这个人的姓名
%>
<td><%=rs("name") & "k=" & k%></td>
<%
rs.movenext
next
%>
<%
' 如果当最后一行不足列数的时候,则补起列数
for j = 1 to i-k
%>
<td> </td>
<%
next
%>
</tr>
<%
' 数据指针向回滚动,好取得这一行的各个人的score,k是记录这次指针共向下移动了几个
rs.move -k

%>
<tr>
<%
for j = 1 to k
%>
<td><%=rs("score")%></td>
<%
rs.movenext
next
%>
<%
' 如果当最后一行不足列数的时候,则补起列数
for j = 1 to i-k
%>
<td> </td>
<%
next
%>

</tr>

<%
rs.moveprevious
rs.movenext
loop
%>

</table>
acong110 2004-07-24
  • 打赏
  • 举报
回复
<%
for i=1 to 总记录数
%>
<td>显示数据<td>
<%
if i mod "每行显示记录数"=0 then response.write("</tr><tr>")
next
%>

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧