MethodMedlem sedan apr. 2001357 inlägg Jag har en sökfunktion där jag använder mig av % som jokertecken, det fungerar, men jag har ett pagingscript och då vill jag att sökningen "ligger kvar" när man byter sida men då får jag fel när jag skickar det som QueryString
jag får ett sökresultat först, men sen när jag byter sida och skickar en queristring så skiter det sig...
exempel:
addUser.asp?frmUserSearch=3%25
Får jag i adressfältet och sen i sql står detta:
SELECT * from tblUsers WHERE fld_LoginID <> 1 AND fld_UserName = '3%' ORDER BY fld_LoginID DESC
Hur kommer det sig att det inte fungerar, sen vill jag använda mig av * so jokertecken och då använder jag mig av en regexp
myString = strSearch
strReplace = "%"
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\*"
replacestring = objRegExp.Replace(myString, strReplace)
men får inte det att fungera alls...
vad gör jag för fel?
Mvh
Jonas
@ndersMedlem sedan juni 200032 969 inlägg Re: Problem med wildcard...
Method skrev:
SELECT * from tblUsers WHERE fld_LoginID <> 1 AND fld_UserName = '3%' ORDER BY fld_LoginID DESC
Hur kommer det sig att det inte fungerar
Hur ser sql-frågan ut när det fungerar då?
sen vill jag använda mig av * so jokertecken och då använder jag mig av en regexp
Varför använda sig av regexp för en vanlig replace? Väldigt onödigt.
myString = Replace(strSearch, "*", "%")
MethodMedlem sedan apr. 2001357 inlägg Regexp kändes lite överflödigt helt klart, jag blev lite småsugen att använda det när jag satt och läste om det *s*
Nu får jag inte något att fungera när jag blandar in * eller %... jag måste ju vara blind... Det finns minst 4 poster i databasen om jag söker på 324234 så om jag söker utan % så får jag ett sökresultat...
Så här ser koden ut
form name="frmSearch" action="<%=strScriptName%>" method="get">
<table width="400" border="0" cellpadding="6" cellspacing="0" bgcolor="#1D4281">
<tr>
<td width="93">Search user/s:</td>
<td width="120"><input name="frmUserSearch" type="text"></td>
<td width="151"><input name="btnSearch" type="submit" id="btnSearch" value="Submit"></td>
</tr>
<tr>
<td colspan="3">Use * as a wildcard for partial matches.</td>
</tr>
</table>
</form>
<%strSearch = Request.QueryString("frmUserSearch")
strSearch = Replace(strSearch, "*", "%")
If strSearch <> "" Then
SQL = "SELECT * from tblUsers WHERE fld_LoginID <> 1 AND fld_UserName = '" & strSearch & "' ORDER BY fld_LoginID DESC "
Else
SQL = "SELECT * from tblUsers WHERE fld_LoginID <> 1 ORDER BY fld_LoginID DESC "
End If
Så här ser det ut om man skriver ut SQL
addUser.asp?frmUserSearch=3*
SELECT * from tblUsers WHERE fld_LoginID <> 1 AND fld_UserName = '3%' ORDER BY fld_LoginID DESC
Tack på förhand
Jonas
@ndersMedlem sedan juni 200032 969 inlägg = säger exakt jämförelse.
Använd LIKE.