Avatar billede danskeb Nybegynder
08. april 2002 - 14:19 Der er 31 kommentarer og
3 løsninger

søg i database

Jeg har en access 2000 database jeg skal kunne søge i.

Jeg har denne søge formular:
<form action="find">
<input type='text' value="" name='sogetekst'
...
</form>

Hvordan gør jeg rent praktisk når jeg søger ?
Avatar billede olly Nybegynder
08. april 2002 - 14:21 #1
Åbne en cooection til databasen og så søge vha SQL!
Avatar billede danskeb Nybegynder
08. april 2002 - 14:22 #2
Jeg er total nybegynder så lidt mere hjælp vil være cool :)
Avatar billede olly Nybegynder
08. april 2002 - 14:23 #3
Det får du da... 2 sec....
Avatar billede olly Nybegynder
08. april 2002 - 14:25 #4
Connection til DB!

Dim objConn
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.ConnectionString = "DSN=pizzasg.dsn" //Det er det navn du har givet den i ODBC tingen
objConn.Open
Avatar billede olly Nybegynder
08. april 2002 - 14:28 #5
http://www.html.dk/tutorials/asp/lektion18.asp
http://www.html.dk/tutorials/asp/lektion19.asp
http://www.html.dk/tutorials/asp/lektion20.asp

De skulle kunne hjælpe... Men ellers så giv mig koden og fortæl ved den skal.. Så skal jeg hjælpe... (Er ikke ASP haj men ken finde ud af det!)
Avatar billede oasen Nybegynder
08. april 2002 - 14:29 #6
strSQL = "SELECT Kolonne1,Kolonne2 FROM DinTabel WHERE"
strSQL = strSQL & " (Kolonne2 LIKE '%" & DitSøgeord & "%')"

http://www.html.dk/tutorials/asp/lektion19.asp
http://www.eksperten.dk/spm/91303
Avatar billede danskeb Nybegynder
08. april 2002 - 14:29 #7
haha tja det var ikke meget jeg fatte af det, hvad mener du med Det er det navn du har givet den i ODBC tingen??
Avatar billede olly Nybegynder
08. april 2002 - 14:31 #8
Du skal sætte din database kilde op i ODBC eller så skal du gøre sådan her...

<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb") //Hvor den ligger din db...
' Åben databaseforbindelsen
Conn.Open DSN
%>
Avatar billede olly Nybegynder
08. april 2002 - 14:33 #9
Hvad os bruger du? I win2000 og XP kan du åbne

C:\WINNT\ODBCAD32.exe

Det er der den skal sættes op...
Avatar billede olly Nybegynder
08. april 2002 - 14:35 #10
Skal hjem nu.. Men er hjemme om 1 time hvis du stadig har brug for hjælp... Vil gerne hjælpe...
Avatar billede danskeb Nybegynder
08. april 2002 - 14:35 #11
olly: der er såmænd ikke så meget kode, det jeg ønsker er en søge linie hvor man skriver et kodeord (usg) dette kode ord skal så hente felterne (type) samt (status) fra databasen, det ville være supert hvis du kunne hjælpe med det.
Avatar billede danskeb Nybegynder
08. april 2002 - 14:36 #12
olly jeg er her til kl 16.00
Avatar billede oasen Nybegynder
08. april 2002 - 14:38 #13
Jeg tror du kunne få meget glæde af lige at læse dette:

http://activedeveloper.dk/aspdigital/kapitel2/search.asp
Avatar billede wilweb Nybegynder
08. april 2002 - 14:39 #14
Her er en DSN-less database forbindelse.
Du skal alså ikke sætte noget op på din server andet end at du skal have skrive rettigheder der hvor din Database er placeret.

Din form rettes til:
<form action="find.asp">
<input type='text' value="" name="sogetekst"
... osv...
</form>

din find.asp

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("databasemappen/dindatabase.mdb")
Conn.Open DSN

strSQL = "Select * From Tabel Where strTekst=" & request.form("sogetekst")

Do While Not rs.EOF
    Response.write rs("strTekst") & "<br>"

    rs.MoveNext
Loop
'Luk database
Conn.Close
Set Conn = Nothing
%>


------
Her vil den lede i din database og udskrive alle felter som er lig  i din form.
Tabellen hedder: Tabel
Kolonen i tabellen hedder: strTekst

Håber du kan bruge det.
Avatar billede danskeb Nybegynder
08. april 2002 - 14:40 #15
olly databasen ligger på en hosted server og jeg har forbindelse til den, skal bare ha' gjort så der kan søges iden.
Avatar billede oasen Nybegynder
08. april 2002 - 14:41 #16
Han behøver da ikke at have skriverettigheder, hvis han kun skal søge i DB'en.
Avatar billede wilweb Nybegynder
08. april 2002 - 14:41 #17
Jeg kan sende dig filer og DB hvis du vil have dem?
Avatar billede oasen Nybegynder
08. april 2002 - 14:44 #18
Din funktion udvælger kun posters der matcher søgeordet præcis. Ved en fritekstsøgning skal der bruges LIKE!
Avatar billede wilweb Nybegynder
08. april 2002 - 14:48 #19
I know, men det var ikke sådanne jeg forstod spørgsmålet, men tak
Avatar billede danskeb Nybegynder
08. april 2002 - 14:59 #20
jeg har prøvet men det virker ikke.
Jeg får godtnok et søge felt, men søgningen resulteret i en fejl " Siden kan ikke vises"
Avatar billede oasen Nybegynder
08. april 2002 - 15:04 #21
Hvorfor læser du ikke http://activedeveloper.dk/aspdigital/kapitel2/search.asp ? Efter hvad jeg kan forstå er det præcis det, du har brug for - og så er det hele endda skåret ud i pap.
Avatar billede danskeb Nybegynder
08. april 2002 - 15:04 #22
Her er min find.asp fil

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("db/database.mdb")
Conn.Open DSN

strSQL = "Select * from personer"
& request.form("sogetekst")
Set rs = Conn.Execute(strSQL)

Do While Not rs.EOF
    Response.write rs("usg") & "<br>"

    rs.MoveNext
Loop
'Luk database
Conn.Close
Set Conn = Nothing
%>
Avatar billede danskeb Nybegynder
08. april 2002 - 15:07 #23
Avatar billede wilweb Nybegynder
08. april 2002 - 15:13 #24
oasen:> jeg er godt klar over har ikke skal have skrive rettigheder, jeg tænkte bare at det måsk var et skridt videre, men du har helt ret.

danskeb:> Skal du bruge fritsøgning eller søge på ordet du skriver?

Jeg logger af og er på igen i aften
Avatar billede oasen Nybegynder
08. april 2002 - 15:19 #25
gizom---> Den bør også placeres i et cgi-bin directory. Det var bare for at gøre det mindre simplificeret :)
Avatar billede oasen Nybegynder
08. april 2002 - 15:22 #26
danskeb---> Hvor meget har du skrevet indtil videre?

Jeg kan da godt bikse en færdig løsning sammen til dig, hvis du fortæller mig præcist, hvad dine kolonner i DB'en hedder, og hvad det skal kunne.
Avatar billede wilweb Nybegynder
08. april 2002 - 15:28 #27
oasen :> nu er du vist lidt ude i hvad udbyderne kalder deres fil mapper?
Jeg skal nok trække mig, så du får lov til at udarbejde det, det er ÅK med mig. Det var bare mit indtryk at dansked ville søge efter noget bestemet a´ La: strSQL = "Select * From personer Where Navn = 'Hans'"
Avatar billede oasen Nybegynder
08. april 2002 - 15:29 #28
Fandt du ud af noget, siden du gav points?
Avatar billede oasen Nybegynder
08. april 2002 - 15:57 #29
Hmm... hele scriptet røg sig lige en tur. Men prøv at kigge på denne: http://www.celinedion.dk/disko/search.asp - var det noget i den stil?
Avatar billede wilweb Nybegynder
09. april 2002 - 21:55 #30
oasen :> han vil nok ikke mere!!
Har du lavet http://www.celinedion.dk/disko/search.asp ?
Jeg søgte på celine og det gav intet resultat, Hø er det meningen? Det ser ellers meget fedt ud:>
Avatar billede oasen Nybegynder
10. april 2002 - 22:23 #31
Ja, jeg er i øjeblikket ved at opbygge siden, så det kan godt være, der er nogle døde links og noget mindre fedt i mellem. Det rettes!
Den er slet ikke tilmeldt søgemaskiner endnu og heller ikke indlagt META.
Tak for komplimenten:) - jeg får en vurdering af den om et par uger her.

Nææh... Jeg var i gang med at skrive et script til ham, og da jeg så trykkede på DEL-tasten gik Eksperten 1 tilbage i historien, og ville ikke gå frem igen. Så gad jeg ikke mere, men han må gerne kigge på min egen, hvis han har lyst.
Avatar billede oasen Nybegynder
10. april 2002 - 22:27 #32
Nååh... du søgte på min side. Jeg troede du mente en ekstern søgerobot *g*

Det skyldes, at der kun ligger ca. 40 sange i databasen indtil videre. Der ender med at være ca. 500...
Avatar billede wilweb Nybegynder
10. april 2002 - 23:08 #33
oasen :> Jeg tænkte bare hvis jeg nu søger på artistens fornavn (celine) burde der komme et eller andet resultat. Det var bare det jeg undrede mig over, at der ikke gjorde!
Hvordan søger du! Søger du hele db igennem? Kan man nøjes med en strSQL for at lede alle koloner igennem. Ved du det?
Noget ligesom denne:
strSQL="SELECT * FROM tabel WHERE kolone1, kolone2, kolone3 LIKE '" & Request.form("strSeek") & "%'"
Avatar billede oasen Nybegynder
11. april 2002 - 19:22 #34
Det er sådan set meget simpelt:

strSQL = "SELECT ID, Track FROM audiotabel WHERE"
strSQL = strSQL & " (Track LIKE '%" & strKeyword & "%') ORDER BY Track"

Den går ind og ser om søgeordet matcher én eller flere af sangtitlerne og opskriver herefter disse som links med adressen ...search.asp?ID=?

Alle kolonner? Ja, så er du nødt til at skrive kolonnerne op, som det ses på activedeveloper:

strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '" & strKeyword & "')"
strSQL = strSQL & " OR (Adresse LIKE '" & strKeyword & "')"
strSQL = strSQL & " OR (Bynavn LIKE '" & strKeyword & "')"
strSQL = strSQL & " OR (Beskrivelse LIKE '" & strKeyword & "')"

Og hvis den også skal søge på dele af ordet tilføjes som bekendt en eller to "%":

strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
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