webForumDet fria alternativet

min sökfunktion funkar inte

ASP

13 svar · 309 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1
<% If Request.Querystring("vad") = "sok1" Then

namn = Request.Form("namn") & "%"
username = Request.Form("username") & "%" 
stad = Request.Form("stad") & "%"
kon = Request.Form("kon") & "%"

SQL = "Select from members Where namn LIKE '" & namn & "' AND username LIKE '" & username & "' AND stad LIKE '" & stad & "' AND kon LIKE '" & kon & "' Order by username desc"

RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

If Not RecSet.EOF Then

Do Until RecSet.EOF

Response.Write RecSet("username") & "<br>"

RecSet.Movenext
Loop

Else 

Response.Write "Inga medlemmar hittades vid sökningen."

End If 

End If
%>

När jag söker på tex Bertil på username så skriver den ändå ut Andreas.

Alla fälten är av typen text så vad kan vara felet?

Medlem sedan juni 200032 967 inlägg
#2

Jag gissar att dina variabler är tomma. Kontrollera att formulärsfältsnamnen stämmer överens med det du requestar in, samt att du angett metoden POST i <form>-taggen.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#3

Hade fel som jag rättade till men nu får jag detta fel:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.

SQL-strängen

SQL = "Select from members Where namn LIKE '" & namn & "' AND username LIKE '" & username & "' AND stad LIKE '" & stad & "' AND kon LIKE '" & kon & "' Order by username desc"
Medlem sedan juni 200032 967 inlägg
#4

Får du samma fel om du klamrar dina kolumnnamn?

Om du använder svensk Access kan det finnas svenska ord du inte bör använda som tabell- eller fältnamn, exempelvis namn. Prova därför att ange fältnamnen inom [].

Mvh,

Medlem sedan feb. 20011 498 inlägg
#5

Gjorde så här nu men det funkar inte heller:

namn2 = Request.Form("namn") & "%"
username2 = Request.Form("username") & "%" 
stad2 = Request.Form("stad") & "%"
kon2 = Request.Form("kon") & "%"

SQL = "Select from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"

Får samma felmeddelande.

Medlem sedan juni 200032 967 inlägg
#6

Hur ser den färdiga SQL-frågan ut om du skriver ut den med Response.write innan execute?

Medlem sedan feb. 20011 498 inlägg
#7

Om du menar att jag ska skriva så här:

Response.Write Execute(SQL)

så får jag detta:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03FD)
'Case' förväntas.

På den raden jag visade ovan.

Medlem sedan mars 20011 880 inlägg
#8

Det var inte så du skulle skriva.

Response.Write SQL

Så så har du möjlighet att se vad som händer när du sedan kör SQL:en.
;)

Medlem sedan feb. 20011 498 inlägg
#9

Om jag skriver så här:

SQL = "Select from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"

Response.Write SQL

[b]RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic[/b]

Så får jag samma felmeddelande som förut fast på den raden som är fetare här ovan.

Medlem sedan juni 200032 967 inlägg
#10

Nu ser jag vad jag missat tidigare...

Du har glömt specificera vilka fält du vill ska hämtas från tabellen.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#11

Det har jag väl inte, alla inom [] är ju fälten förutom det första som är tabellen.

Medlem sedan juni 200032 967 inlägg
#12
SQL = "Select [u][b]här skall man ange vilka fält man vill hämta [/b][/u]from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"
Medlem sedan dec. 2000399 inlägg
#13

Jo lyssna på @nders.

SQL = "SELECT [b]*[/b] FROM [members] WHERE [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"
Medlem sedan feb. 20011 498 inlägg
#14

Jaha, nu fattar jag va den där stjärnan betyder :e

Det funkar bra nu också :birp

275 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)