日期:2012-07-23  浏览次数:20906 次

数据库记录集的分列显示


/**
@作者 : 慈勤强
@Email : cqq1978@Gmail.com
*/

在用asp、php或者其他语言从数据库中提取记录显示的时候,一般我们都是一行一行

的显示,一条记录一行,就像下面的样子:


姓名 性别 年龄 籍贯
慈勤强 男 26 山东省荣成市
李冉 男 26 北京方庄

可是有时候,我们也需要分列显示,就是每行显示多条记录,特别是一些类别显示的,比如:

化工行业 纺织行业 服装鞋帽
电子信息 制造业 农林
水产


共三列,每行显示3条信息。

我看过一些朋友写的程序,有些写的不是很好,下面以asp为例说明:

一、普通写法

strSql = "Select name From Category"
Set objRs = objConn.Execute(strSql)
While Not objRs.EOF
'每行的第一列
Response.Write objRs(0) & " "
objRs.MoveNext
'第二列
Response.Write objRs(0) & " "
objRs.MoveNext
'第三列
Response.Write objRs(0) & " "
objRs.MoveNext

'重起一行
Response.Write "<br>"
Wend


二、改进的写法

iColumn = 3 '每行显示3列
i=1 '一个滚动的标记,每次加1
strSql = "Select name From Category"
Set objRs = objConn.Execute(strSql)

While Not objRs.EOF

Response.Write objRs(0) & " "
objRs.MoveNext

If i Mod iColumn=0 Then '当输出三条记录时,就换行
Response.Write "<br>"
End If
i = i + 1
Wend


想必大家都已经看清楚了,我们只要在循环体内判断一下,

如果输出了3条记录,就打印一个换行符,重新开始一行输出。

这里用到了求余运算 Mod 。