Avatar billede tirdyr Nybegynder
28. april 2002 - 13:50 Der er 26 kommentarer og
1 løsning

søgning i accesdatabase

Jeg skal lave en søgning i en databse, hvor man skal kunne søge på filmtitler. Da jeg er meget grøn inden for området vil jeg gerne have en meget udførlig vejledning.
siden kan ses på: http://tirdyr.dyndns.dk
jeg kan også kontaktes på icq #92711123
Avatar billede kimiwan Nybegynder
28. april 2002 - 13:54 #1
ved du, hvordan man henter data ud fra en access database?
Avatar billede larsen1 Nybegynder
28. april 2002 - 13:54 #2
Du kan lave et søgefelt, og så søge via en sql-sting

sql = "select * from filmtabel where titel = " & request("searchtitel")

Det burde virke.... er du med, eller skal der forklares yderligere?
Avatar billede tirdyr Nybegynder
28. april 2002 - 13:59 #3
det skal forklares yderligere.. det jeg har lavet indtil nu har været nogle indlagte funktioner fra frontpage
Avatar billede tirdyr Nybegynder
28. april 2002 - 14:02 #4
jeg har rimelig styr på html funktioner, men når det gælder hentning fra en database, og asp kender jeg ikke rigtigt nogetr til...
Avatar billede larsen1 Nybegynder
28. april 2002 - 14:05 #5
Har du en database med filmtitler i? Hvis ja, hvad hedder dine felter og tabeller? - så skal jeg prøve at skrive noget til dig, så du kan se systemet i det.
Avatar billede sth Novice
28. april 2002 - 14:37 #6
jeg ville nok bruge en streng med like, da du derved ikke skal skrive det hele, kunne se ud i stil med denne:
sql="SELECT * FROM filmtabel where titel LIKE '%" & request("searchtitel") & "%')"
Avatar billede larsen1 Nybegynder
28. april 2002 - 15:52 #7
Du har ret sth!
Avatar billede larsen1 Nybegynder
28. april 2002 - 16:03 #8
tirdyr: hvis du er helt grøn i asp, bør du nok læse nogle af de tutorials der findes. se f.eks. http://www.html.dk/tutorials/asp/
Der er nogle fine tutorials om asp nederst.
Avatar billede sth Novice
28. april 2002 - 16:49 #9
Ja og her har larsen1 helt ret i :)
Avatar billede tirdyr Nybegynder
28. april 2002 - 17:08 #10
Databasen hedder grulf's movies
så er der feltet "title" det er den der skal søges på der udover er der "type" feltet, og "nr" feltet, og "number of cds" feltet.. der skal vises alle felter når der søges på "title"...
Avatar billede larsen1 Nybegynder
28. april 2002 - 17:42 #11
Prøv om du kan forstå det her... ellers vil jeg anbefale at du læser de artiker. Det her er een måde at gøre det på. Jeg har ikke lige testet om det virker.

<%

Dim vPath, pPath, ConString

vPath = "database\grulfsmovies.mdb" 'use this one if database is in root of cart folder
pPath = Server.MapPath( vPath )

ConString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & pPath & ";" & "JET OLEDB:Database Password="


%>

<html>

    <head>
        <title>film</title>
    </head>

    <body bgcolor="#ffffff">
        <form name="search" action="filmside.asp" method="get">
            <input type="text" name="searchtitel" size="24"><input type="submit" name="submitButtonName">
        </form>


<%
if request("searchtitel") <> "" then

sql="SELECT * FROM filmtabel where titel LIKE '%" & request("searchtitel") & "%'"

    set con = Server.CreateObject("ADODB.Connection")
    con.open conString

    set r = con.execute(sql)
           
if r.EOF then
        Response.Write "Ingen film fundet."
      else
    do while r.EOF = false

        titel = r("title")
        type = r("type")
        response.write titel
        response.write type

    Loop
end if
r.Close
set r = Nothing
   
Con.Close
set Con = Nothing

end if
%>
    </body>

</html>
Avatar billede kotelet Nybegynder
28. april 2002 - 20:27 #12
Larsen1 >> Du mangler r.Movenext i dit loop!
Avatar billede larsen1 Nybegynder
28. april 2002 - 20:37 #13
Korrekt - sorry!

der skal stå r.movenext lige før "loop"
Avatar billede tirdyr Nybegynder
28. april 2002 - 22:57 #14
jeg vil sige.. at nu har jeg læst de artikler på htlm.dk, og stadig synes jeg ikke at jeg kan gennemskue det du har skrevet her...
Avatar billede kotelet Nybegynder
28. april 2002 - 23:44 #15
'Altså...

'Det vigtigste vi skal vide for at kunne svare dig er: Hvad hedder din database-fil... Hvad hedder tabellen med de forskellige film i og hvad hedder kolonnerne.

'Det som der er meningen er nu at man laver et script der søger i databasen efter ALLE titler der MINDER om den man har indtastet i søgefeltet. som er "LIKE" din søgning.

'Først laver man en forbindelse til databasen, således:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\databaser\grulfs.mdb")
' Hvor C:\databaser\grulf.mdb er det sted på serveren hvor din database ligger
Conn.Open DSN

'Jeg antager at formular-feltet som brugeren indtaster sin søgning i, hedder "search".

'Nu laver vi den streng der skal bestemme hvad vil have UD af databasen:

strSQL = "Select * from movies where title = '" & request.form("search")& "' order by title"

'Nu lægger vi alle resultaterne ind i et såkaldt record set (rs) så vi kan tage alle resultaterne ud, en ad gangen:

set rs = Conn.Execute(strSQL)

'Så laver vi et LOOP som udkskriver samtlige resultater, et ad gangen. Men vi finder først ud af om der overhovedet ER nogen resultater, sådan her:

IF rs.BOF = TRUE THEN
' Der er ingen resultater
Response.write "Der er ikke fundet nogen film!"
ELSE
' Hvis der ER fundet nogen film laver vi så loop'et som skriver dem i en liste. Loop'et stopper når RS er kommet til ende (EOF = End Of File)


Response.write "Her er resultaterne"
Response.write "<p>"
DO
response.write "Titel: " & rs("title") & ", Nr.: " & rs("nr") & "<br>"
rs.Movenext
LOOP WHILE NOT rs.EOF
Response.write "</p>"
END IF
' Nu er listen blevet skrevet ud og vi afslutter database forbindelser.

Conn.Close
set Conn = Nothing
%>

' Hmmm ... Gad vide om det virker... Jeg går selvfølgelig ud fra at du kan finde ud af at lave et tekstfelt, i en formular, som hedder Search. Hvis der er flere spm. så skriv...
Avatar billede tirdyr Nybegynder
29. april 2002 - 00:05 #16
hvad skal jeg så skrive som action i formen??
Avatar billede kotelet Nybegynder
29. april 2002 - 00:09 #17
action='fil.asp'

fil.asp er den fil hvor du lægger det script jeg lige har sendt dig ind i. Selve formularen behøver nemlig ikke at være i samme fil som scriptet. Selve fil.asp laver ikke andet end at udskrive listen.

Hvis du opretter et spm. senere vil jeg gerne forklare hvordan du smelter dele sammen...
Avatar billede tirdyr Nybegynder
29. april 2002 - 00:13 #18
er det lavet sådan at den oxo søger på en del af titlen??
Avatar billede kotelet Nybegynder
29. april 2002 - 00:14 #19
Du gør desuden nok klogt i at udskifte denne linie
strSQL = "Select * from movies where title = '" & request.form("search")& "' order by title"

med denne nye:

sql="SELECT * FROM filmtabel where titel LIKE '%" & request("searchtitel") & "%'"

Sorry ...

/Kotelet
Avatar billede kotelet Nybegynder
29. april 2002 - 00:15 #20
fuck fuck ... Den skulle have set SÅDAN her ud:

strSQL="SELECT * FROM movies where titel LIKE '%" & request("search") & "%'"

' movies er navnet på den tabel der indeholder alle dine film
Avatar billede kotelet Nybegynder
29. april 2002 - 00:16 #21
Ja ... EFter du har udskiftet med den linie jeg har sendt til dig, så søger den også på titler der MINDER om... som er "LIKE" :-)
Avatar billede tirdyr Nybegynder
29. april 2002 - 00:21 #22
der er en fejl i den linie du lige har sendt
Avatar billede kotelet Nybegynder
29. april 2002 - 00:24 #23
Hvad siger browseren at fejlen er?
Vær sikker på at tabellen med dine film i hedder "movie" eller at du skriver det rigtige navn ind i linien.

Vær opmærksom på at det ikke er FIL-navnet der skal stå men selve tabellen INDE I filen, som skal stå der. Jeg ved ikke om der skal stå "Titel" eller "Title" ... Ellers prøv denne:

strSQL="SELECT * FROM movies where title LIKE '%" & request.form("search") & "%'"
Avatar billede tirdyr Nybegynder
29. april 2002 - 00:26 #24
så virker det!!!
Avatar billede kotelet Nybegynder
29. april 2002 - 00:28 #25
Jamen det var da fantastisk! :-) ...
Avatar billede tirdyr Nybegynder
29. april 2002 - 00:29 #26
du skal have mange tak...
Avatar billede kotelet Nybegynder
29. april 2002 - 00:30 #27
Det var så lidt! Tak for point :o)

/Kotelet
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