/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp til resultatside af søgning
Fra : Ukendt


Dato : 24-10-05 20:43

Resultatside af søgning på sin hjemmeside.

Jeg har gemt indholdet af mine sider i en database.

Databasen heder indhold og har felterne ID, overskrift, underoverskrift,
tekst, Navn, dato, tid og billede.

Jeg har herefter en søgeformular, der med action=get fører til en
resultatside, hvor jeg ønsker at få vist en liste med links til de sider,
der indeholder søgeordene.

Listen skal bestå af en overskrift, der skal fungere som link samt
underoverskriften, der skal fungere som en "appetitvækker"

Jeg har indsat følgende kode, men er gået i stå. Dels pga. en fejl i koden.
Jeg håber jeg kan få lidt hjælp.

<%
' Her fanger jeg søgeordet.
strSoegeTekst = Request.QueryString("Soeg")

' Her opretter jeg forbindelse til databasen.
ConnSoeg = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
& Server.MapPath("../../../database/indhold.mdb")

' Her skriver jeg min egentlige søgesætning. Jeg tror at en af mine fejl
ligger her, da der står, at der er for få parametre. Dog henviser fejlen til
en linie længere nede.
strSQL = "Select ID, Overskrift, Underoverskrift FROM indhold WHERE
'%Tekst%' LIKE StrSoegeTekst OR '%Overskrift%' LIKE StrSoegeTekst OR
'%Underoverskrift%' LIKE StrSoegeTekst;"

' Herunder vil jeg gerne udføre søgningen.
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open ConnSoeg

' Det er denne linie fejlen henviser til.
Set rs = myConn.Execute(strSQL)
%>

Længere er jeg ikke nået endnu.

Help me



 
 
Jens Gyldenkærne Cla~ (24-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 22:25

Michael Sørensen skrev:

> Jeg har indsat følgende kode, men er gået i stå. Dels pga. en
> fejl i koden.

Hvilken fejl?

> Dog henviser fejlen til en linie længere nede.
> strSQL = "Select ID, Overskrift, Underoverskrift FROM indhold
> WHERE '%Tekst%' LIKE StrSoegeTekst OR '%Overskrift%' LIKE

Hvis dine søgefelter hedder Tekst og Overskrift - og det du vil
søge efter er StrSoegeTekst, har du byttet om på det i sql-
sætningen.

Der skal anførselstegn og jokertegn (%) om den *værdi* du skal søge
på, ikke om det feltnavn du skal søge i.

Den færdige sql-sætning skal være noget a la:

Select ID, Overskrift, Underoverskrift FROM indhold
WHERE Tekst LIKE '%foo%' OR Overskrift LIKE '%foo%'
OR Underoverskrift LIKE '%foo%'

"foo" i sætningen herover svarer til det du får ud i strSoegeTekst
- så for at få sql-sætningen genereret korrekt, skal du opbygge en
streng hved strSoegeTekst indgår hver gang der står foo i mit
eksempel:

strSQL = "SELECT ID, ... WHERE Tekst LIKE '%" & strSoegeTekst & "%'
OR Overskrift LIKE '%" strSoegeTekst & "%' ....

Bemærk placeringen af asp-anførselstegn ("), sql-anførselstegn (')
og jokertegn (%).

En god regel når man opbygger drilske sql-sætninger, er at udskrive
den færdige sætning på skærmen (response.write strSQL). På den måde
kan man se om den strengsammensætning man har lavet i asp fører til
en meningsfuld sql-sætning.

Se mere på siden her: <http://asp-faq.dk/article/?id=41>.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste