Avatar billede fastpoint Nybegynder
25. oktober 2001 - 10:16 Der er 22 kommentarer og
1 løsning

en søgefunktion

Hvordan laver jeg sådan en? Den skal bare søge i min access database og hvise resultatet..

I min database har jeg tre tabeller...

title, dato og type

den skal bare søge i title og udskrive det på en side hvor man så kan se title dato og type.

Jeg havde engang en kodestump til det og mener ikke at det var særlig avanceret:)
Avatar billede beatone Nybegynder
25. oktober 2001 - 10:32 #1
Du skal vel bare sætte en    WHERE title like \'%\" & Request(\"soegeord\") &\"%\'    ind i din sql sætning.
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 10:43 #2
Jeg ved ikke hvordan man gør alt det der:)
Jeg skal bare have et søge script som søger i de title og den kode jeg skal bruge på min hjemmeside (til søgefeltet)

Avatar billede beatone Nybegynder
25. oktober 2001 - 11:00 #3
Prøv det her! Jeg har sat navnet for inputfeltet i din form til Searchword:

------------------------------------------------

<%@ LANGUAGE=\"VBSCRIPT\" %>

<%
Dim strConnect

\' husk at æmdre DIN_DATABASE.mdb til din databases navn!
strConnect = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"& Server.MapPath(\"DIN_DATABASE.mdb\") &\";DefaultDir=\"& Server.MapPath(\".\") &\";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5\"
%>

<%
Set resultat = Server.CreateObject(\"ADODB.Recordset\")
Set objConn = Server.CreateObject (\"ADODB.Connection\")
objConn.Open strConnect
%>

<%
Dim strAryWords
Dim strValue
Dim firstSQL1

\'Input navnet i formen hedder searchword...
strValue = Request(\"searchword\")
strAryWords = Split(strValue, \" \")
Dim intCol
For intCol = 0 to UBound(strAryWords)

\'Her søges der i Title
firstSQL1 = firstSQL1 & \" (Title LIKE \'%\" & strAryWords(intCol) & \"%\')\"
if intCol < UBound(strAryWords) then
firstSQL1 = firstSQL1 + \" OR \"
end if
Next

\' Ændre DIN_TABEL til den tabel som du vil søge i
set firstSQL = objConn.Execute(\"SELECT * FROM DIN_TABEL WHERE \"&firstSQL1&\" ORDER BY dato ASC;\") %>


<% While Not firstSQL.EOF
\'Herunder udskrives resultaterne
%>

<%= firstSQL(\"title\") %><br>

<%
firstSQL.MoveNext
Wend
%>

<%
    objConn.Close
    Set resultat = Nothing
%>
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:13 #4
ok den ser sådan her ud... hvordan får jeg editboxen til at bruge search.asp til at søge i min database....


<%@ LANGUAGE=\"VBSCRIPT\" %>

<%
Dim strConnect

\' husk at æmdre DIN_DATABASE.mdb til din databases navn!
strConnect = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"& Server.MapPath(\"../db/database.mdb\") &\";DefaultDir=\"& Server.MapPath(\".\") &\";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5\"
%>

<%
Set resultat = Server.CreateObject(\"ADODB.Recordset\")
Set objConn = Server.CreateObject (\"ADODB.Connection\")
objConn.Open strConnect
%>

<%
Dim strAryWords
Dim strValue
Dim firstSQL1

\'Input navnet i formen hedder searchword...
strValue = Request(\"searchword\")
strAryWords = Split(strValue, \" \")
Dim intCol
For intCol = 0 to UBound(strAryWords)

\'Her søges der i Title
firstSQL1 = firstSQL1 & \" (Title LIKE \'%\" & strAryWords(intCol) & \"%\')\"
if intCol < UBound(strAryWords) then
firstSQL1 = firstSQL1 + \" OR \"
end if
Next

\' Ændre DIN_TABEL til den tabel som du vil søge i
set firstSQL = objConn.Execute(\"SELECT * FROM title WHERE \"&firstSQL1&\" ORDER BY dato ASC;\") %>


<% While Not firstSQL.EOF
\'Herunder udskrives resultaterne
%>

<%= firstSQL(\"title\") %><br>

<%
firstSQL.MoveNext
Wend
%>

<%
    objConn.Close
    Set resultat = Nothing
%>
Avatar billede beatone Nybegynder
25. oktober 2001 - 11:17 #5
<form NAME=\"form\" action=\"search.asp\" method=\"post\">
<INPUT TYPE=\"text\" NAME=\"searchword\" SIZE=\"15\" value=\"\">
<INPUT TYPE=\"Submit\" NAME=\"submit\">
</form>
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:43 #6
jeg får denne fejl

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37)
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query \'title\'. Make sure it exists and that its name is spelled correctly.
list/search.asp, line 35
Avatar billede beatone Nybegynder
25. oktober 2001 - 11:45 #7
det er her det går galt SELECT * FROM title WHERE

er du helt sikker på at du har et table der hedder title?
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:47 #8
ja.... jeg tjecker lige om det er den rigtige database base sti jeg har angivet
Avatar billede beatone Nybegynder
25. oktober 2001 - 11:49 #9
du har sikkert en tabel der hedder ****** og i den har du 3 celler(hedder de vist?) som hedder title, dato og type
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:58 #10
jeg har en der hedder title
Avatar billede beatone Nybegynder
25. oktober 2001 - 11:58 #11
ok hvilken celle vil du så søge i, i tabellen title?
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:59 #12
når jeg dobbelt klikker på min database kan jeg se en tabel der hedder list dobbelt klikker jeg på den er der title type og dato
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 11:59 #13
ja
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:02 #14
ok det virker nu... men den skriver kun navnet på filerne....
Avatar billede beatone Nybegynder
25. oktober 2001 - 12:02 #15
nåå ok, så skal du skrive    SELECT * FROM list WHERE    istedet.
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:03 #16
den skriver for eksempel..

c++ Tutorial
delphi tutorial

men man kan ikke klikke på dem
Avatar billede beatone Nybegynder
25. oktober 2001 - 12:04 #17
hvis du også vil have dato og type skriver du dette:

<% While Not firstSQL.EOF
\'Herunder udskrives resultaterne
%>

Title: <%= firstSQL(\"title\") %><br>
Dato: <%= firstSQL(\"dato\") %><br>
type: <%= firstSQL(\"type\") %><br><br>

<%
firstSQL.MoveNext
Wend
%>

...istedetfor det der stod før.

Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:09 #18
jeg vil have at man kan klikke på title da det er et link :) hvordan gør jeg det
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:19 #19
hov...linket kan findes i cellen ved siden af title som hedder    link

der står url\'en i ..hjalp deT?
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:30 #20
i title ser det sådan her ud

<a href=\"./out.asp?id=<% Response.Write rs(\"id\")%>\" target=\"_blank\">

id er en celle lige ved siden af title
Avatar billede beatone Nybegynder
25. oktober 2001 - 12:30 #21
prøv <a href=\"<%= firstSQL(\"link\") %>\"><%= firstSQL(\"title\") %></a>
Avatar billede fastpoint Nybegynder
25. oktober 2001 - 12:45 #22
PERFEKT!

Takker:)
Avatar billede starleicht Nybegynder
25. oktober 2001 - 13:59 #23
Jeg takker også for scriptet, se dog her:

http://www.eksperten.dk/spm/125419
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester