Avatar billede eckhardt Nybegynder
19. oktober 2006 - 12:40 Der er 47 kommentarer og
1 løsning

søgning i asp på Access database

hej ..

jeg har en moviedb som køre i asp men en Access db.

jeg kunne godt tænke mig at have mulighed for at søge efter titel , dk sub, nr og dk tale

nogen der kan hjælpe ?`?
Avatar billede fennec Nybegynder
19. oktober 2006 - 13:23 #1
Det skulle nok kunne lade sig gøre. Men vi skal have en DB beskrivelse.
Avatar billede eckhardt Nybegynder
20. oktober 2006 - 17:21 #2
ja nu spørger jeg dumt men en db beskrivelse ?
Avatar billede fennec Nybegynder
23. oktober 2006 - 08:27 #3
Hvilke tabeller og kolonner du har og hvordan de hænger sammen.
Avatar billede eckhardt Nybegynder
23. oktober 2006 - 12:34 #4
selve databasen heder movies
i den er der 3 tabeller
movies
profile
settings

movies inden holder
ID
ABSTRACT ved dog ikke hvad denne er til .. der er aldrig blevet skrevet til feltet
TITLE
GENRE
SUB
LINK
NR
TALE
TID
MEDIE
UDLAANT
LAANER
DATO UDLAANT
RATING

er det nok ?
Avatar billede fennec Nybegynder
23. oktober 2006 - 13:10 #5
Hvilke datatyper er de enkelte felter??
Avatar billede eckhardt Nybegynder
25. oktober 2006 - 14:08 #6
tja det ved jeg ikke lige. .
kan du se det hvis du får selve databasen ?
Avatar billede eckhardt Nybegynder
25. oktober 2006 - 15:38 #7
databasen kan hentes på http://harry.lir.dk/db.rar
Avatar billede eckhardt Nybegynder
29. oktober 2006 - 10:28 #8
hmm kunne det ikke bruges ?
Avatar billede fennec Nybegynder
30. oktober 2006 - 08:35 #9
Nu ved jeg ikke hvormeget du kender til ASP og databaser, men her har du den sql-sætning der skal fyres af:

title = replace(request.querystring("title"),"'","''")
dkSub = replace(request.querystring("dkSub"),"'","''")
nummer = replace(request.querystring("nummer"),"'","''")
dkTale = replace(request.querystring("dkTale"),"'","''")
sql = "select * from movies where 1=1 "
if title <> "" then sql = sql & " and title like '%"& title &"%' "
if dkSub <> "" then sql = sql & " and sub='"& dkSub &"' "
if nummer <> "" then sql = sql & " and nr='"& nummer &"' "
if dkTale <> "" then sql = sql & " and tale='"& dkTale &"' "
set rs = conn.execute(sql)
Avatar billede eckhardt Nybegynder
30. oktober 2006 - 12:15 #10
hvis du kan skrive mig koden til feltet man skal skrive sin søgning i og en knap at trykke på ville det være perfekt
Avatar billede fennec Nybegynder
30. oktober 2006 - 12:38 #11
Noget i denne stil:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<form name="myForm" method="post" action="DenneSide.asp?mode=search">
Title: <input type="Text" name="title" value=""><br>
DK Sub: <select name="dkSub"><option value="">&nbsp;</option><option value="yes">Ja</option><option value="no">Nej</option></select><br>
Nummer: <input type="Text" name="nummer" value=""><br>
DK Tale: <select name="dkTale"><option value="">&nbsp;</option><option value="yes">Ja</option><option value="no">Nej</option></select><br>
<input type="Submit" value="Søg">
</form>

<%
if Request.querystring("mode") = "search" then
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "...DB connection..."
    title = replace(request.querystring("title"),"'","''")
    dkSub = replace(request.querystring("dkSub"),"'","''")
    nummer = replace(request.querystring("nummer"),"'","''")
    dkTale = replace(request.querystring("dkTale"),"'","''")
    sql = "select * from movies where 1=1 "
    if title <> "" then sql = sql & " and title like '%"& title &"%' "
    if dkSub <> "" then sql = sql & " and sub='"& dkSub &"' "
    if nummer <> "" then sql = sql & " and nr='"& nummer &"' "
    if dkTale <> "" then sql = sql & " and tale='"& dkTale &"' "
    set rs = conn.execute(sql)
    while not rs.eof
        Response.write rs("title") &"<br>"
        rs.MoveNext
    wend
end if
%>
</body>
</html>
Avatar billede eckhardt Nybegynder
30. oktober 2006 - 12:47 #12
skal lige høre inden jeg tester om der er noget jeg skal ændre ?
Avatar billede eckhardt Nybegynder
30. oktober 2006 - 12:55 #13
der er vel et sted jeg skal skrive hvor den finder databasen

og hvor viser den hvad den finder efter sin søgnine ?
Avatar billede fennec Nybegynder
30. oktober 2006 - 12:58 #14
Denne linje:
conn.Open "...DB connection..."

Skal ændres så den connecter til din database:
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("DinDB.mdb;")
eller:
conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("DinDB.mdb;")

Også vil du nok også gerne have rette løkken hvor den udskriver resultaterne:

    while not rs.eof
        Response.write rs("title") &"<br>"
        rs.MoveNext
    wend
Avatar billede eckhardt Nybegynder
30. oktober 2006 - 16:18 #15
ja undskyld mig men jeg ved intet om asp..

men er det ikke det samme der står i de 2 løkker ??
Avatar billede fennec Nybegynder
30. oktober 2006 - 16:32 #16
Jo, men jeg ved jo ikke, hvad du vil have skrevet ud, og hvordan det skal se ud. Du udvider den bare med de andre ting du vil udskrive. Her smidt i en tabel også:
...
set rs = conn.execute(sql) %>
<table>
<tr>
  <td>Titel</td>
  <td>Nummer</td>
</tr>
<%
while not rs.eof %>
<tr>
  <td><%= rs("title") %></td>
  <td><%= rs("nr") %></td>
</tr>
<%
  rs.MoveNext
wend %>
</table>
<%
...

Du kan med fordel læse denne tut (lektion 18-22):
http://www.html.dk/tutorials/asp/lektion18.asp
Avatar billede eckhardt Nybegynder
30. oktober 2006 - 17:59 #17
hmm nu ved jeg godt at jeg bliver krævende men kunne jeg få dit til at lave det for mig så det passer til siden jeg har ?

siden kan se på http://harry.lir.dk:82
det jeg gerne vil have er at når jeg søger efter en titel så finde den det og viser det lige som på side når den viser listen .
når man søger efter dk sub eller dk tale skal den vise alle dem med det angivet
og søger efter når skal den vise den film med det nr.

ellers må du smide et svar da du har gjort dig fortjent til dine point
Avatar billede fennec Nybegynder
31. oktober 2006 - 08:23 #18
"Siden kan ikke vises" når jeg klikker på dit link.
Avatar billede eckhardt Nybegynder
31. oktober 2006 - 17:47 #19
ups serveren var gået ned nu skulle den være der
Avatar billede fennec Nybegynder
01. november 2006 - 14:28 #20
title = replace(request.querystring("title"),"'","''")
dkSub = replace(request.querystring("dkSub"),"'","''")
nummer = replace(request.querystring("nummer"),"'","''")
dkTale = replace(request.querystring("dkTale"),"'","''")
sql = "select * from movies where 1=1 "
if title <> "" then sql = sql & " and title like '%"& title &"%' "
if dkSub <> "" then sql = sql & " and sub='"& dkSub &"' "
if nummer <> "" then sql = sql & " and nr='"& nummer &"' "
if dkTale <> "" then sql = sql & " and tale='"& dkTale &"' "
set rs = conn.execute(sql) %>
<table>
<tr>
  <td>Titel</td>
  <td>Genre</td>
  <td>Tid</td>
  <td>DK Tale</td>
  <td>DK Sub</td>
  <td>Nr</td>
</tr>
<%
while not rs.eof %>
<tr>
  <td><%= rs("TITLE") %></td>
  <td><%= rs("GENRE") %></td>
  <td><%= rs("TID") %></td>
  <td><%= rs("TALE") %></td>
  <td><%= rs("SUB") %></td>
  <td><%= rs("nr") %></td>
</tr>
<%
  rs.MoveNext
wend %>
</table>
<%
Avatar billede eckhardt Nybegynder
01. november 2006 - 16:02 #21
undskyld men jeg kan ikke få dig til at smide det hele sammen så jeg bare skal gemme det i et asp da jeg ikke lige kan se mig ud af det ?
Avatar billede fennec Nybegynder
01. november 2006 - 16:15 #22
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<form name="myForm" method="post" action="DenneSide.asp?mode=search">
Title: <input type="Text" name="title" value=""><br>
DK Sub: <select name="dkSub"><option value="">&nbsp;</option><option value="yes">Ja</option><option value="no">Nej</option></select><br>
Nummer: <input type="Text" name="nummer" value=""><br>
DK Tale: <select name="dkTale"><option value="">&nbsp;</option><option value="yes">Ja</option><option value="no">Nej</option></select><br>
<input type="Submit" value="Søg">
</form>

<%
if Request.querystring("mode") = "search" then
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("DinDB.mdb;")
    title = replace(request.querystring("title"),"'","''")
    dkSub = replace(request.querystring("dkSub"),"'","''")
    nummer = replace(request.querystring("nummer"),"'","''")
    dkTale = replace(request.querystring("dkTale"),"'","''")
    sql = "select * from movies where 1=1 "
    if title <> "" then sql = sql & " and title like '%"& title &"%' "
    if dkSub <> "" then sql = sql & " and sub='"& dkSub &"' "
    if nummer <> "" then sql = sql & " and nr='"& nummer &"' "
    if dkTale <> "" then sql = sql & " and tale='"& dkTale &"' "
    set rs = conn.execute(sql) %>
<table>
<tr>
  <td>Titel</td>
  <td>Genre</td>
  <td>Tid</td>
  <td>DK Tale</td>
  <td>DK Sub</td>
  <td>Nr</td>
</tr>
<%    color = "#FFFFFF"
    while not rs.eof %>
<tr bgcolor="<%= color %>">
  <td><%= rs("TITLE") %></td>
  <td><%= rs("GENRE") %></td>
  <td><%= rs("TID") %></td>
  <td><%= rs("TALE") %></td>
  <td><%= rs("SUB") %></td>
  <td><%= rs("nr") %></td>
</tr>
<%        if color = "#FFFFFF" then color = "#DDDDDD" else color = "#FFFFFF"
      rs.MoveNext
    wend %>
</table>
<%
end if
%>
</body>
</html>
Avatar billede eckhardt Nybegynder
01. november 2006 - 16:25 #23
skal jeg ændre noget i denne linje action="DenneSide.asp?mode=search">
?
den en viser fejl når jeg søger
Avatar billede fennec Nybegynder
02. november 2006 - 08:36 #24
"DenneSide.asp" skal rettes til det filnavn du har brugt til filen.
Avatar billede eckhardt Nybegynder
02. november 2006 - 12:09 #25
oki nu skriver den
Microsoft JET Database Engine error '80004005'

'C:\Inetpub\wwwroot\moviedb\html\data\movies.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

/html/test.asp, line 18
line 18 er denne
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("data/movies.mdb;")

kan du se fejle ?
Avatar billede eckhardt Nybegynder
02. november 2006 - 12:10 #26
skal lige siges at html mappen og data mappen ligger begge i en mappe som kaldes film
Avatar billede fennec Nybegynder
03. november 2006 - 09:45 #27
Prøv at sætte / foran data:

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/data/movies.mdb;")
Avatar billede eckhardt Nybegynder
03. november 2006 - 12:26 #28
tak det virkede..
men er ked at af at side det den laver ikke en rigtig søgning den laver bare en liste
prøve selv på
http://harry.lir.dk:82/html/test.asp
og se selve siden på http://harry.lir.dk:82
Avatar billede eckhardt Nybegynder
20. november 2006 - 10:56 #29
hmm har du givet op ?
Avatar billede fennec Nybegynder
20. november 2006 - 11:34 #30
Nej, jeg havde glemt ?'et. Det må du meget undskylde.
Jeg kan ikke komme ind på de to links du har skrevet i forrige post. "Serveren blev ikke fundet"
Avatar billede eckhardt Nybegynder
20. november 2006 - 11:57 #31
nåå nej adressen heder nu også www.eckhardt.be:83
test på søgning er på http://www.eckhardt.be:83/html/test.asp
du kan også smide mig en mail på test@eckhardt.be
Avatar billede eckhardt Nybegynder
25. november 2006 - 18:24 #32
hmm død igen ?
Avatar billede fennec Nybegynder
27. november 2006 - 08:52 #33
Der er et eller andet galt med E, for jeg jeg har ikke fået en mail angående din tidligere kommentar 20/11, men den fra den 25/11 har jeg fået ?-)

Prøv lige at udskrive sql sætningen, inden du bruger den:
...
response.write "SQL: "& sql '<-- Tilfør denne linje
set rs = conn.execute(sql)
...
Avatar billede eckhardt Nybegynder
27. november 2006 - 09:08 #34
ja så skriver den dette

SQL: select * from movies where 1=1
Avatar billede fennec Nybegynder
27. november 2006 - 09:29 #35
Doh... Ret disse 4 linjer:
title = replace(request.querystring("title"),"'","''")
dkSub = replace(request.querystring("dkSub"),"'","''")
nummer = replace(request.querystring("nummer"),"'","''")
dkTale = replace(request.querystring("dkTale"),"'","''")

til:
title = replace(request.form("title"),"'","''")
dkSub = replace(request.form("dkSub"),"'","''")
nummer = replace(request.form("nummer"),"'","''")
dkTale = replace(request.form("dkTale"),"'","''")
Avatar billede eckhardt Nybegynder
27. november 2006 - 13:30 #36
ja så virker det næsten

nu manlger der bare at når man sig der skal være dk sub så viser den alle med dk sub
og det samme for dk tale
Avatar billede fennec Nybegynder
27. november 2006 - 13:54 #37
I den database jeg fik (som jeg har slettet igen), mener jeg da der stod ja/nej i de to omtalte kolonner. Og jeg kan også se det i selecten. Hvilken datatype er de to kolonner?
Avatar billede eckhardt Nybegynder
27. november 2006 - 15:17 #38
jeg ved ikke hvordan jeg finde ud af det
men du kan hente databasen på www.eckhardt.be/db.rar
Avatar billede fennec Nybegynder
27. november 2006 - 15:55 #39
Der står "ja" og "nej" i stedet for "yes" og "no", så vi skal rette det i options:
DK Sub: <select name="dkSub"><option value="">&nbsp;</option><option value="ja">Ja</option><option value="nej">Nej</option></select><br>

DK Tale: <select name="dkTale"><option value="">&nbsp;</option><option value="ja">Ja</option><option value="nej">Nej</option></select><br>
Avatar billede eckhardt Nybegynder
27. november 2006 - 21:29 #40
tak for din hjælp nu virker det bare

kan du se en fejl i dette link  ?
når jeg trykker på det skere der ingen ting..
Avatar billede eckhardt Nybegynder
27. november 2006 - 21:29 #41
ups
<font size="2"><a href="index.asp?page=test">Søg</a></font>
Avatar billede fennec Nybegynder
28. november 2006 - 08:27 #42
Nope, jeg kan ikke se nogen fejl der.
Jeg vil gætte på det kommer fra noget tidligere kode, hvor du evt har glemt at lukke et tag eller mangler et "
Avatar billede eckhardt Nybegynder
28. november 2006 - 13:42 #43
hvis jeg nu vælger at flytte selve søge funktionen op under billede på selve siden og vil have den skal vise resultatet i feltet under lige som når man ser listen på normal vis
hvad skal jeg så skrive i stedet for <form name="myForm" method="post" action="DenneSide.asp?mode=search">

og hvad skal der fjernes på selve siden den skal vise for at søge boksen ikke kommer der ?
Avatar billede fennec Nybegynder
28. november 2006 - 13:51 #44
Du skal bare rette:
action="DenneSide.asp?mode=search"

Til navnet på din forside (sikkert index eller default):
action="index.asp?mode=search"

også indsætter du bare hele:
if Request.querystring("mode") = "search" then
...
...
end if

i underblokken.
Avatar billede eckhardt Nybegynder
28. november 2006 - 14:17 #45
kan jeg ikke få den til at åbne en ny side op inde i det felt i stedet for at bruge den side som bliver vist fra start ?
Avatar billede eckhardt Nybegynder
28. november 2006 - 14:30 #46
ville gerne have hvis det kunne lade sig gøre at få det vist i den fil som heder browse.asp for at kommer formatet jo til at passe til det andet
Avatar billede fennec Nybegynder
28. november 2006 - 14:42 #47
Så submitter du bare til browse.asp i stedet:
action="browse.asp?mode=search"
Avatar billede eckhardt Nybegynder
28. november 2006 - 17:15 #48
tja det virker også næsten men det over tager hele siden i sted for at være i det felt som resten er i
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