asp 多条件查询.帮我看一下.这个语句有没有问题.

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:34:17
原程序
nowkeyword=request("nowkeyword")
Dim TempStr,TempArr,TempItem
TempStr=nowkeyword
TempArr=Split(TempStr,",")
For TempItem=0 To UBoundStrToArr(TempStr,UBound(TempArr),",")
sql=sql&" and (title like '%"&TempArr(TempItem)&"%') or (huohao like '%"&TempArr(TempItem)&"%')"
Next
response.write sql
Public Function UBoundStrToArr(ByVal cCheckStr,ByVal cUBoundArr,ByVal cSpaceStr)
If Instr(cCheckStr,cSpaceStr)=0 Then
UBoundStrToArr=cUBoundArr
Exit Function
End If
Dim TempSpaceStr,UBoundValue
TempSpaceStr=Mid(cCheckStr,Len(cCheckStr)-Len(cSpaceStr)+1) '获取字符串右侧间隔字符
If TempSpaceStr=cSpaceStr Then '如果字符串最右侧存在间隔字符,则下标值需要-1
UBoundValue=cUBoundArr-1
Else
UBoundValue=cUBoundArr
End If
UBoundStrToArr=UBoundValue
End Function
我在表单nowke

用不着函数,把问题弄复杂了:

nowkeyword=request("nowkeyword")
Dim TempStr,TempArr,TempItem

TempStr=replace(Trim(nowkeyword)," ","") '清理掉所有的空格
if TempStr <> "" then
while instr(TempStr,",,")<>0
TempStr=replace(TempStr,",,",",") '这个循环帮你清理掉所有连续逗号的错误输入
wend
TempStr=iif(right(TempStr,1)=",",left(TempStr,len(TempStr)-1),TempStr) '本句将你的字符串中最右边的逗号去掉
TempArr=Split(TempStr,",")
For TempItem=0 To UBound(TempArr)
sql=sql&" and (title like '%"&TempArr(TempItem)&"%') or (huohao like '%"&TempArr(TempItem)&"%')"
Next
response.write sql
else
response.write "no data input"
end if
===============================================
实际上只是ASP中IIF语句的问题,以下代码已经测试通过:

nowkeyword=request("nowkeyword")
Dim TempStr,Temp