| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:请指导一下.关于文本多字段查询!
只看楼主 加入收藏
lecojason
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-9-5
收藏
 问题点数:0 回复次数:5 
请指导一下.关于文本多字段查询!
程序代码:
look.asp
<form name="myform" action="over.asp" method="post">
<input name="search1" type="text"/>
<input type="submit" value="查询"/>
</form>

在文本框里面输入HA04,HI03然后点查询就会进入over.asp查询
代码如下:
程序代码:
<!--#include file="conn.asp"-->
<% dim pname
   pname=gerform("search1")
   Str=split(pname,",")
   For i=0 to ubound(Str)
      StrTemp=Str(i)
   Next
  Set Rs=Server.CreateObject("Adodb.Recordset")
  Rs.Open "Select * from mbcomp Where proname Like '%"&StrTemp&"%'",dbconn,1,1
  Do while not Rs.eof
  Response.write"<a href=''>"&Rs("proname")&"</a>"
  Rs.movenext
  loop
  Rs.close : Set Rs=Nothing
%>

现在出现错误.就是不能查询到HA04.能找到HI03.能请问什么地方出现了问题.请指导一下.谢谢.

[[it] 本帖最后由 lecojason 于 2008-3-10 12:43 编辑 [/it]]
搜索更多相关主题的帖子: 字段 文本 指导 查询 
2008-03-10 12:32
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
Rs.Open "Select * from mbcomp Where abc1 Like '%"&StrTemp&"%' or abc2 Like '%"&StrTemp&"%' or abc3 Like '%"&StrTemp&"%' or abc4 Like '%"&StrTemp&"%'",dbconn,1,1
2008-03-10 13:22
lecojason
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-9-5
收藏
得分:0 
结果还是不对.是这样的.通过文本框输入,不止一个.有可能30个产品名,每个产品名用逗号(,)分开,查询MBCOMP这个表里的Proname字段值.如果按照上面的写法.那工作量岂不是很大.请问有没有其他方法.

我现在输入很多个.但是都只能查询到最后面的一个.比如:HA04,......HA03就只能查询到HA03.但是前面的产品名称MBCOMP表里面都是有记录的.
2008-03-10 13:47
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 
For i=0 to ubound(Str)
      StrTemp=Str(i)
  Set Rs=Server.CreateObject("Adodb.Recordset")
  Rs.Open "Select * from mbcomp Where proname Like '%"&StrTemp&"%'",dbconn,1,1
  if not (rs.eof and rs.bof) then
  Do while not Rs.eof
  Response.write"<a href=''>"&Rs("proname")&"</a>"
  Rs.movenext
  loop
  end if
  Rs.close : Set Rs=Nothing
Next
试试这样。少了一种判断,如果只输入一个关键词时的情况
2008-03-10 14:09
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
说清楚,是许多关键词在一个字段里查询吗?
你的题目是在多字段里查询,那么,你的查询条件里必须要将那几个要查询的字段都要写上去,要不然如何在多字段里查询呢?
2008-03-10 14:33
lecojason
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-9-5
收藏
得分:0 
谢谢各位的努力.完整的实现了我想要的功能(可以在look.asp无限制的输入产品名如:N65SLI,HI03,HA01-GT3,HA01-GT2 Turbo,M2A693-VDP,M52LESVG-VT,945GCVM2S-A1,N250DAS,754GT-P-EC,I35P-G,N650G,M2A694-GDG,M2A481-VP,M2A480VP,939Turbo-G-EC,PM9MSR2-VC,V500DA ).现在把代码贴上.有漏洞的地方还需大家帮忙补上.谢谢
程序代码:
over.asp
<!--#include file="conn.asp"-->
<%
dim pname
pname=getform("search1")
Str=Split(pname,",")
For i=0 to Ubound(Str)
   StrTemp=Str(i)
   Sql=Sql&" or proname like '%"&StrTemp&"%'"
Next
Set Rs=Server.CreateObject("Adodb.Recordset")
sql="Select * From mbcomp Where proname Like '%"&pname&"%'"&Sql&""
Rs.Open sql,dbconn,1,1
   Response.write"<table width='100%' border='0' cellspacing='1' cellpadding='2' class='tbbgcolor'>"
   Response.write"<tr >"
   Response.write"<td class='trbgcolor_1'>Product Name</td>"
   Do while not Rs.eof 
   Response.write" <tr>"
   Response.write" <td  class='trbgcolor_2'><a href='motherboard_view.asp?productid="&Rs("proid")&"'>"&Rs("proname")&"</a></td></tr>"
   Rs.movenext
   loop
   Rs.movefirst 
   Response.write"</tr>"
   Rs.close : Set Rs=Nothing
%>


[[it] 本帖最后由 lecojason 于 2008-3-10 14:45 编辑 [/it]]
2008-03-10 14:41
快速回复:请指导一下.关于文本多字段查询!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012846 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved