站内搜索
这段代码是一个站内搜索的代码,有两部分组成一个下拉列表和一个文本框。没有报错,但就是不能根据文本框的值来查询!这段代码为什么不能根据文本框里填的关键字来充当判断条件呢
每次起作用的只有下拉列表的值。
能帮我看看么,是下面的代码出错了还是,有什么地方没有写上!
<%
dim search_id,search_text
search_id= request("searchType")
select case search_id
case "0" search_text="所有类别"
case "1" search_text="汽车"
case "2" search_text="摄影"
case "3" search_text="妇婴"
case "4" search_text="时尚"
case "5" search_text="培训"
case "6" search_text="家居"
case "7" search_text="家电"
case "8" search_text="家政"
Case "9" search_text="物流"
End Select
%>
<form id="form1" name="form1" method="post" action="" runat="server">
<table border="0" cellpadding="0" cellspacing="0" bgcolor="" width="720" align="leaf">
<%
set rs=server.createobject("adodb.recordset")
'若用户没有选择类别,则默认选择全部搜索,否则按类别搜索
if search_text="所有类别" then
sql="select * from shangjia_info where 1=1 and"
'类别被选中的情况下
else
sql="select * from shangjia_info where shangjia_leibie = '" & search_text & "' and"
end if
'定义变量
dim keyword,keywordlist,search_sql
'使用Request 对象的QueryString 方法读取表单文本域中用户输入的关键词
keyword=Request("keyword")
'如果关键字为空
if keyword="" then
'搜寻的条件就以列表值的条件为唯一条件,搜寻数据
search_sql=sql
'LEN 函数获得字符串的长度,left 函数获得字符串从左边数指定数目的字符
'在此是去掉字符串中最后几位的"or "
search_sql=Left(search_sql,(LEN(search_sql)-3))
'如果关键字不为空的情况
else
'获得关键字列表
'用空格替换关键词中的字符"'"
keyword = replace(keyword,"'"," ")
'用空格替换关键词中的字符"["
keyword = replace(keyword,"["," ")
'用空格替换关键词中的字符"]"
keyword = replace(keyword,"]"," ")
'用空格替换关键词中的中文字符","
keyword = replace(keyword,","," ")
'用空格替换关键词中的英文字符","
keyword = replace(keyword,","," ")
'去掉关键词左边和右边的空格,函数LTrim 去掉字符串左边空格,函数RTrim 去掉字符串右边空格
keyword=ltrim(rtrim(keyword))
'将用户输入的关键词用空格分成多个关键词并保存在一维数组keywordlist中
keywordlist=split(keyword)
'循环将关键字的各部分都加入SQL语句
for i=0 to ubound(keywordlist)
'Trim 函数去掉字符串左边和右边函数
keywordlist(i) = Trim(keywordlist(i))
'sql 语句,web.title 指的是数据表web 中title 列的值,web.title 中包含关键词keywordlist(i)
search_sql=searcg_sql &" shangjia_hangye like '%" & keywordlist(i) & "%' or "
search_sql=search_sql &" shangjia_leibie like '%" & keywordlist(i) & "%' or "
search_sql=search_sql &" shangjia_jianjie like '%" & keywordlist(i) & "%' or "
search_sql=search_sql &" shangjia_dizhi like '%" & keywordlist(i) & "%' or "
Next
'LEN 函数获得字符串的长度,left 函数获得字符串从左边数指定数目的字符
'在此是去掉字符串中最后几位的"or "
search_sql=Left(search_sql,(LEN(search_sql)-3))
end if
rs.open search_sql,conn,1,3
'不存在记录
if rs.eof and rs.bof then
response.Write"<tr><td align='center'>"
response.Write "目前没有用户记录"
response.Write"</td></tr>"
'存在记录
else
'分页代码 略
%>
[[it] 本帖最后由 awke002 于 2008-9-17 14:46 编辑 [/it]]