webForumDet fria alternativet

Söka med LIKE

ASP

4 svar · 212 visningar · startad av LordJens

Medlem sedan aug. 2000119 inlägg
Frågan#1

Jag försöker göra en liten sökmaskin, som skall leta efter länkar i en databas. Jag använder följande SQL-sats för att få fram resultaten:

SokRes = "SELECT * FROM links WHERE namn LIKE '"& Request.Form("sok") &"'"

Sökningen fungerar fint så länge sökordet och posten i databasen är identiska. Borde det inte med LIKE räcka med att en del är lika?
T.ex. Jag vill att om man söker efter "webForum", så skall man även hitta "webForum & webAvis". Hur?

------------------
.:: Jens has spoken ::.

Medlem sedan juni 200032 967 inlägg
#2

du måste lägga in wildcards ju.

SokRes = "SELECT * FROM links WHERE namn LIKE '%"& Request.Form("sok") &"'%"

like utan wildcards är samma sak som =.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan aug. 2000119 inlägg
#3

ok, men då fick jag:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i frågeuttrycket 'namn LIKE '%webforum'%'

Now what?

------------------
.:: Jens has spoken ::.

Medlem sedan juni 200032 967 inlägg
#4

du har en apostrof precis efter webforum, ska den vara där?`

om du skall ha apostrofer i strängar i sql-frågor måste du escape:a dem.

SokRes = "SELECT * FROM links WHERE namn LIKE '%"& replace(Request.Form("sok"),"'","''") &"'%"

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan aug. 2000119 inlägg
#5

Ok, nu fungerar det. Det var ett ' som var på fel ställe.

Använder nu koden:

   SokRes = "SELECT * FROM links WHERE namn LIKE '%"& Request.Form("sok") &"%'"

thx.

------------------
.:: Jens has spoken ::.

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)