读书人

如何样循环输出这样的代码

发布时间: 2012-02-14 19:19:19 作者: rapoo

怎么样循环输出这样的代码?
在页面中有三个这样的表格,显示6条记录,要求,循环读取数据库,然后将数据库的数据填入表格,要求没有记录时,表格也要显示出来,不过所有的数据全为默认值,请问怎么写循环呢?
<table width= "100% " border= "1 " cellspacing= "1 " cellpadding= "1 ">
<tr>
<td align= "center " valign= "middle "> <img src= "../imgs/IMG_0052_1.gif " alt= " " "
width= "120 " height= "120 " /> </td>
<td> <ul style= "text-align:left; ">
<li> 姓名: <a href= "index_member.html "> 张三那 </a> </li>
<li> 性别:男 </li>
<li> 学历:大专 </li>
<li> 籍贯:江苏 </li>
</ul> </td>
<td align= "center "> <img src= "../imgs/Picture.jpg " alt= " " width= "120 " "
height= "160 " /> </td>
<td colspan= "2 "> <ul style= "text-align:left; ">
<li> 姓名: <a href= "index_member.html "> 张三那 </a> </li>


<li> 性别:男 </li>
<li> 学历:大专 </li>
<li> 籍贯:江苏 </li>
</ul> </td>
</tr>
</table>

我是这样写的,但是不对,不能正确循环
Set rs = Server.CreateObject( "ADODB.Recordset ")
rs.Open sql, conn, 1, 1
For a = 0 To topNum -1
If rs.EOF And rs.bof Then
If a Mod 2 = 0 Then
Response.Write " <table width= " "100% " " border= " "1 " " cellspacing= " "1 " " cellpadding= " "1 " "> "
Response.Write " <tr> "
Response.Write " <td align= " "center " " valign= " "middle " "> <img src= " "../imgs/IMG_0052_1.gif " " alt= " " " " "
Response.Write "width= " "120 " " height= " "120 " " /> </td> "
Response.Write " <td> <ul style= " "text-align:left; " "> "
Response.Write " <li> 姓名: <a href= " "index_member.html " "> 张三那 </a> </li> "


Response.Write " <li> 性别:男 </li> "
Response.Write " <li> 学历:大专 </li> "
Response.Write " <li> 籍贯:江苏 </li> "
Response.Write " </ul> </td> "
Response.Write " <td align= " "center " "> <img src= " "../imgs/Picture.jpg " " alt= " " " " width= " "120 " " "
Response.Write "height= " "160 " " /> </td> "
Response.Write " <td colspan= " "2 " "> <ul style= " "text-align:left; " "> "
Response.Write " <li> 姓名: <a href= " "index_member.html " "> 张三那 </a> </li> "
Response.Write " <li> 性别:男 </li> "
Response.Write " <li> 学历:大专 </li> "
Response.Write " <li> 籍贯:江苏 </li> "
Response.Write " </ul> </td> "
Response.Write " </tr> "


Response.Write " </table> "
End If
Else
b = 0
Do While Not rs.EOF
If a Mod 2 = 0 Then
Response.Write " <table width= " "100% " " border= " "1 " " cellspacing= " "1 " " cellpadding= " "1 " "> "
Response.Write " <tr> <td align= " "center " " valign= " "middle " "> <img src= " "../upimages/perpic/ "&rs( "picture_filename ")& " " " alt= " " " " style= " "border:0; width:120px; height:120px; " " > "
Response.Write " </td> "
Response.Write " <td> <ul style= " "text-align:left; " "> "
Response.Write " <li> 姓名: "& rs( "pmember_name ")& " </li> "
Response.Write " <li> 性别: "
.................
Response.Write " </li> <li> 学历: "
......................
Response.Write " </li> <li> 籍贯: "


Response.Write " </li> </ul> </td> "
If b = 1 Then
Response.Write " </tr> "
Response.Write " </table> "
End If
b = b + 1
If b = 2 Then b = 0
End If
rs.movenext

Loop
End If
Next
rs.Close
Set rs = Nothing

[解决办法]
suppose topNum为存储数据的数组的size,显示每行2条数据
....
<table>
<tr>
<%
for i=0 to tomNum-1
if i mod 2=0 and i <> topNum-1 and i> 0 then
response.write " </tr> <tr> "
end if
if not rs.eof then
%>
<td> <img src= " <?=ArrayInfo(i).photo?> .gif " /> </td> //一村照
<td>
<ul>
<li> 编号: <?=ArrayInfo(i).id ?> </li>
<li> 姓名: <?=ArrayInfo(i).name ?> </li>
</ul>
</td>
<%
else
%>
<td> <img src= "img.gif " /> </td> //一村照
<td>
<ul>
<li> 编号: </li>
<li> 姓名: </li>
</ul>
</td>
<% end if
next
%>
</tr>
</table>

[解决办法]
if rs.eof and rs.bof then
else
while not rs.eof

for I1=1 to “这里应该是一行显示数据的条数 "
response.write "有数据 "
rs.movenext
if rs.eof then exit for
next
if I1 < "这里应该是一行显示数据的条数 " then
for I2=I1 to “这里应该是一行显示数据的条数” ‘呵,不好意思
response.write "默认 "


next
end if

wend
end if
这行应该差不多了吧。。。。
[解决办法]
那不是一样吗
换为
for i=0 to topNum-1 step 2
%>
<table>
<tr>
<td> <img ....> </td>
<td> <ul> <li> <?=data(i).id?> </li> </ul> </td>
<td> <img ....> </td>
<td> <ul> <li> <?=data(i+1).name?> </li> </ul> </td>
</tr>
</table>
<%next %>
如果用记录集的话中间加个rs.moveNext
也就是一个循环中有移动两次游标

读书人网 >ASP

热点推荐