趣事记叙文作文500字:懂ASP代码的朋友看过来

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 14:28:21
说明:这是一段网页中商品分类的asp代码,能在后台添加新的商品分类。现在是自上而下自动添加排列的,想请懂ASP代码的朋友帮我改成自左到右的排列方式(一行)。先谢过啦。哈哈!

<TABLE align="center" cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE width=100% border=0 align="center" cellPadding=0 cellSpacing=0 bordercolor="#FFFF00">
<TR>
<TD vAlign=top>
<TABLE height=20 cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<td width=110 height="30" align="right" bgColor=#009141><font color="#009141"><b>商品分类<b></font></td>
</TR>
<tr><td colspan="3" background=images/bg_04.gif border=0></td></tr>
</TBODY>
</TABLE>

<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tbody>
<%
set rs = server.CreateObject("adodb.recordset")
rs.open "select categoryid,category from category where first=0 order by categoryorder",conn,1,1
if rs.eof and rs.bof then
response.Write "<tr><td align=center>还没有商品分类</td></tr>"
else
do while not rs.eof %>
<tr align="left">
<td height=20 colspan="3" valign=center> <a href=cat.asp?catid=<% = rs("categoryid") %>><font color="#009141">--><B><% = rs("category") %></B></font></a></td>
</tr>
<tr><td colspan="3" background=images/bg_04.gif border=0></td></tr>
<%
Dim rs1
set rs1 = server.CreateObject("adodb.recordset")
rs1.open "select categoryid,sortsid,sorts from sorts where sorts.categoryid="&rs("categoryid")&" order by sortsorder",conn,1,1
do while not rs1.eof %>
<tr>
<td valign="top" width="80" align="right"> <a href=class.asp?aid=<% = rs1("categoryid") %>&nid=<% = rs1("sortsid") %>>
<% = rs1("sorts") %>
</a></td>
<td align="center" valign="top"> </td>
<%
rs1.movenext %>
<% if rs1.eof then %>
<%
exit do
else %>
<td valign="top" width="80"><a href=class.asp?aid=<% = rs1("categoryid") %>&nid=<% = rs1("sortsid") %>>
<% = rs1("sorts") %>
</a></td>
</tr>
<% rs1.movenext
end if
loop
rs1.close
set rs1 = nothing %>
<%
rs.movenext
loop
rs.close
set rs = nothing
end if
%>
</tbody>
</table> </TD>
</TR>

</TABLE>

楼上的.我赞成!

所谓自上到下输出,就是说do while循环的是行(<tr></tr>),如果想换成自左向右,请使do while去循环列(<td></td>),就能满足你的要求了

这个就行啊,好好看看吧!
我只给你写一下商品分类的代码,剩下的你自己写吧,一样的道理:

<TABLE align="center" cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE width=100% border=0 align="center" cellPadding=0 cellSpacing=0 bordercolor="#FFFF00">
<TR>
<TD vAlign=top>
<TABLE height=20 cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<td width=110 height="30" align="right" bgColor=#009141><font color="#009141"><b>商品分类<b></font></td>
</TR>
<tr><td colspan="3" background=images/bg_04.gif border=0></td></tr>
</TBODY>
</TABLE>

<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tbody>
<tr align="left">
<%
set rs = server.CreateObject("adodb.recordset")
rs.open "select categoryid,category from category where first=0 order by categoryorder",conn,1,1
if rs.eof and rs.bof then
response.Write "<td align=center>还没有商品分类</td>"
else
do while not rs.eof %>
<td height=20 colspan="3" valign=center> <a href=cat.asp?catid=<% = rs("categoryid") %>><font color="#009141">--><B><% = rs("category") %></B></font></a></td>
<td colspan="3" background=images/bg_04.gif border=0></td>
<%
rs1.movenext %>
loop
rs.close
set rs = nothing
end if
%> </tr>
</tbody>
</table> </TD>
</TR>

</TABLE>

应该说你的程序写的是非常失败的。。从你的SQL查询语句就可以看出来

rs.open "select categoryid,category from category where first=0 order by categoryorder",conn,1,1

rs1.open "select categoryid,sortsid,sorts from sorts where sorts.categoryid="&rs("categoryid")&" order by sortsorder",conn,1,1
在一条语句中循环查询另外一条查询语句
如果你第一个表中有3000条记录 第二个表中也有3000个记录
查询的次数就是3000*3000=9000000次 所以这个程序是失败的

<TABLE align="center" cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE width=100% border=0 align="center" cellPadding=0 cellSpacing=0 bordercolor="#FFFF00">
<TR>
<TD vAlign=top>
<TABLE height=20 cellSpacing=0 cellPadding=0 width=100% border=0>
<TBODY>
<TR>
<td width=110 height="30" align="right" bgColor=#009141><font color="#009141"><b>商品分类<b></font></td>
</TR>
<tr><td colspan="3" background=images/bg_04.gif border=0></td></tr>
</TBODY>
</TABLE>

<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tbody>
<%
set rs = server.CreateObject("adodb.recordset")
rs.open "select categoryid,category from category where first=0 order by categoryorder",conn,1,1
if rs.eof and rs.bof then
response.Write "<tr><td align=center>还没有商品分类</td></tr>"
else
do while not rs.eof %>
<tr align="left">
<td height=20 colspan="3" valign=center> <a href=cat.asp?catid=<% = rs("categoryid") %>><font color="#009141">--><B><% = rs("category") %></B></font></a></td>
</tr>
<tr><td colspan="3" background=images/bg_04.gif border=0></td></tr>
<%
Dim rs1
set rs1 = server.CreateObject("adodb.recordset")
rs1.open "select categoryid,sortsid,sorts from sorts where sorts.categoryid="&rs("categoryid")&" order by sortsorder",conn,1,1
do while not rs1.eof %>
<tr>
<td valign="top" width="80" align="right"> <a href=class.asp?aid=<% = rs1("categoryid") %>&nid=<% = rs1("sortsid") %>>
<% = rs1("sorts") %>
</a></td>
<td align="center" valign="top"> </td>
<%
rs1.movenext %>
<% if rs1.eof then %>
<%
exit do
else %>
<td valign="top" width="80"><a href=class.asp?aid=<% = rs1("categoryid") %>&nid=<% = rs1("sortsid") %>>
<% = rs1("sorts") %>
</a></td>
<% rs1.movenext
end if
loop
rs1.close
set rs1 = nothing %>
</tr>
<%
rs.movenext
loop
rs.close
set rs = nothing
end if
%>
</tbody>
</table> </TD>
</TR>

</TABLE>
运行一下试试

不清楚你对程序了解多少,给你点说明,能明白更好,不能明白以后就多加理解吧,
所谓自上到下输出,就是说do while循环的是行(<tr></tr>),如果想换成自左向右,请使do while去循环列(<td></td>),就能满足你的要求了

学ASP不要认为实现是功能就万事大吉,要理解他的思想。