首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

请问ASP函数和SQL语句的两个有关问题

2012-08-22 
请教ASP函数和SQL语句的两个问题%typesrequest.QueryString(type)Function types_type(types_name)if

请教ASP函数和SQL语句的两个问题
<%
types=request.QueryString("type")
Function types_type(types_name)
  if types_name<>"" then
  type_sql = "select * from brand where type='"&types_name&"'"
  set type_rs=conn.execute(type_sql)
brand_sql = "select * from brand where type_id="&type_rs("id")
  set brand_rs=conn.execute(brand_sql)
sql="select * from BI where type="&type_rs("id")'&" and brand="&brand_rs("id")
else
sql="select * from BI order by type,brand"
end if
end Function
if types="Desktop" then
  type_name="台式计算机"
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
elseif types="Notebook" then
  type_name="笔记本计算机"
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
elseif types="Server" then
  type_name="服务器"
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
elseif types="Office" then
  type_name="打印机' or type='复印机' or type='传真机' or type='扫描仪' or type='多功能一体机"
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
elseif types="Network" then
  type_name="网络设备"
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
else
sql=types_type(type_name)
response.Write(types_type(type_name))
set rs=conn.execute(sql)
end if

%>

<link href="images/skin.css" rel="stylesheet" type="text/css" />
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="17" valign="top" background="images/mail_leftbg.gif"><img src="images/left-top-right.gif" width="17" height="29" /></td>
  <td valign="top" background="images/content-bg.gif"><table width="98%" height="31" border="0" cellpadding="0" cellspacing="0" class="left_topbg" id="table2">
  <tr>
  <td height="31"><div class="titlebt">基本设备</div></td>
  </tr>
  </table></td>
  <td width="16" valign="top" background="images/mail_rightbg.gif"><img src="images/nav-right-bg.gif" width="16" height="29" /></td>
  </tr>
  <tr>
  <td height="71" valign="middle" background="images/mail_leftbg.gif">&nbsp;</td>
  <td valign="top" bgcolor="#F7F8F9"><table width="100%" height="138" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td height="13" valign="top">&nbsp;</td>
  </tr>
  <tr>
  <td valign="top"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
  <td class="left_txt">当前位置:基本设备</td>
  </tr>
  <tr>
  <td height="20"><table width="100%" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">


  <tr>
  <td></td>
  </tr>
  </table></td>
  </tr>
  <tr>
  <td><table width="100%" height="55" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="10%" height="55" valign="middle"><img src="images/title.gif" width="54" height="55"></td>
  <td width="90%" valign="top"><p class="left_txt2">在这里,您可以查看到基本设备配置的信息
  </p></td>
  </tr>
  </table></td>
  </tr>
  <tr>
  <td>&nbsp;</td>
  </tr>
  <tr>
  <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td width="100%"><table width="100%" height="31" border="0" cellpadding="0" cellspacing="0" class="nowtable">
  <tr>
  <td class="left_bt2">&nbsp;&nbsp;&nbsp;&nbsp;<span class="left_txt2">基本设备的配置信息。</span></td>
  </tr>
  </table></td>
  </tr>
  <tr>
  <td height="30"><table width="100%" height="60" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td height="33" align="center" bgcolor="#f2f2f2" class="left_txt">类别</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">品牌</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">型号</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">出厂日期</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">CPU</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">内存</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">硬盘</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">显示器</td>
  <td align="center" bgcolor="#f2f2f2" class="left_txt">备注</td>
  <td width="5%" align="center" bgcolor="#f2f2f2" class="left_txt">操作</td>
  <td width="5%" align="center" bgcolor="#f2f2f2" class="left_txt">删除</td>
  </tr>
  <%
do while not rs.eof
brand_id=rs("brand")
set rss=conn.execute("select * from brand where id="&brand_id)
type_id=int(rss("type_id"))
set rsss=conn.execute("select * from brand where id="&type_id)


%>
  <tr>
  <td height="27" align="center" class="left_txt"><%=rsss("type")%></td>
  <td align="center" class="left_txt"><%=rss("type")%></td>
  <td align="center" class="left_txt"><%=rs("model")%></td>
  <td align="center" class="left_txt"><%=format_time(rs("dates"),4)%></td>
  <td align="center" class="left_txt"><%=rs("cpu")%></td>
  <td align="center" class="left_txt"><%=rs("ram")%></td>
  <td align="center" class="left_txt"><%=rs("hd")%></td>
  <td align="center" class="left_txt"><%=rs("monitor")%></td>
  <td align="center" class="left_txt"><%=rs("remarks")%></td>
  <td align="center" class="left_txt"><a href="BI_edit.asp?id=<%=rs("id")%>"><img src="images/edit.gif" width="12" height="12" border="0"> 修改</a></td>
  <td align="center" class="left_txt"><a href="BI_del.asp?id=<%=rs("id")%>" onClick="return confirm('你确定删除<%=rs("brand")%><%=rs("model")%>设备吗?')"><img src="images/delete_6.gif" width="12" height="12" border="0"> 删除</a></td>
  </tr>
  <%
rs.movenext
loop
rs.close
set rs=nothing %>
  </table></td>
  </tr>
  </table></td>
  </tr>
  <tr>
  <td>&nbsp;</td>
  </tr>
  </table>
  </td>
  </tr>
  </table></td>
  <td background="images/mail_rightbg.gif">&nbsp;</td>
  </tr>
  <tr>
  <td valign="middle" background="images/mail_leftbg.gif"><img src="images/buttom_left2.gif" width="17" height="17" /></td>
  <td height="17" valign="top" background="images/buttom_bgs.gif"><img src="images/buttom_bgs.gif" width="17" height="17" /></td>
  <td background="images/mail_rightbg.gif"><img src="images/buttom_right2.gif" width="16" height="17" /></td>
  </tr>
</table>
</body>

数据库设计

brand 表(分类和品牌)
字段如下:
id 主键
type 分类和品牌的值
type_id 上一级分类的id

BI 表(设备库)
字段如下:
id 设备的id
brand 品牌的id(与brand表中的id相关联)
model 型号
dates 出厂日期

数据内容大致如下:

brand 表
id type type_id
 1 台式计算机 0
 2 笔记本电脑 0
 3 打印机 0
 4 复印机 0
 5 传真机 0
 6 联想 1
 7 惠普 1
 8 戴尔 1
 9 联想 2
10 惠普 2


11 爱普生 2
12 京瓷 3

BI 表
id brand model dates
 1 6 扬天A6000C 2003/3/6
 2 6 启天M6000V 2010/10/1
 3 10 5100Le 2011/11/12

问题1
只知道分类是打印机和复印机,如何查询打印机和复印机中所有的设备
问题2
上述的Function 函数返回值的时候为什么
sql=types_type(type_name)
response.Write(types_type(type_name))
这2个缺一不可?连顺序都不能颠倒?

[解决办法]
问题1

select * from BI where brand in (select id from brand where [type]='打印机' or [type]='复印机')

问题2
你的函数写的有问题,没有返回值,而是直接操作了全局变量sql,当
response.Write(types_type(type_name))
放在sql=types_type(type_name)
后面时,sql已经在函数外定义,所以可能正确得到值,但是当
response.Write(types_type(type_name))
放在前面时,sql还没有定义,所以sql是在函数内定义的,在函数外就得不到值了。

热点排行