Avatar billede okay Nybegynder
10. juli 2001 - 13:27 Der er 33 kommentarer og
1 løsning

Søg i DB

http://www.web-zone.dk/s.htm

sådan den søger i bestemt kategori, og søger i alle kategori

Er der nogen der har sådan en script liggende, så vil jeg meget gerne ha den, på forhånd tak for hjælpen.
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 13:32 #1
Scriptet kommer jo meget an på din databasestruktur men her er lidt inspiration:

strSQL = \"SELECT * FROM tabel\"

arrSogeord = Split(Request.Form(\"textfield\"), \" \")
For i = 0 to Ubound(arrSogeord)
    If i = 0 Then
        strSQL = strSQL & \" WHERE (felt LIKE \'%\" & arrSogeord(i) &
\"%\')\"
    Else
        strSQL = strSQL & \" OR (felt LIKE \'%\" & arrSogeord(i) & \"%\')\"
    End if
Next

strSQL = strSQL & \"  WHERE Kategori = \" & REquest.Form(\"select\")
Avatar billede food4u.dk Nybegynder
10. juli 2001 - 13:34 #2
SQL = \"select * from tabel where der_hvor_den_skal_søge like \'%\" & text &\"%\' and kategori like \'%\" & kat & \"%\'\"

så skal der så bare ikke være nogen value under ALLE i din dropdown
Avatar billede food4u.dk Nybegynder
10. juli 2001 - 13:34 #3
hmm, min var vidst ikke helt god nok så :o)
Avatar billede okay Nybegynder
10. juli 2001 - 13:34 #4
her er min database :o)
http://www.web-zone.dk/db.zip
Avatar billede nordclc Nybegynder
10. juli 2001 - 14:35 #5
Tjaaa, men den har du lagt i Access2000 format ikke? Beklager, jeg køre stadig 97!

/Claus
Avatar billede okay Nybegynder
10. juli 2001 - 15:10 #6
ok jeg siger hvordan databasen ser ud :o)

kategori [tabel]
    ID
    Kategori (liv, død, gud)

Citat [tabel]
    ID
    Citat
    Kategori (liv, død, gud)
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 15:19 #7
Er Kategori i Citat tabellen ikke en reference til ID i kategori tabellen?
Avatar billede okay Nybegynder
10. juli 2001 - 19:05 #8
jo
Avatar billede okay Nybegynder
10. juli 2001 - 19:11 #9
Kategori i Citat tabellen er reference til kategori i kategori tabellen?
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 20:16 #10
<html>
<head>
  <title>Søg</title>
</head>
<body>
<%
strConnect = \"xxxxxxxxxx xxxxxxxxxxxx xxxxxxx\"

If Request.Form(\"Kategori\") <> \"\" Then
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
strSQL = \"SELECT * FROM Citat\"
arrSogeord = Split(Request.Form(\"Soegeord\"), \" \")
For i = 0 to Ubound(arrSogeord)
    If i = 0 Then
        strSQL = strSQL & \" WHERE (felt LIKE \'%\" & arrSogeord(i) &
\"%\')\"
    Else
        strSQL = strSQL & \" OR (felt LIKE \'%\" & arrSogeord(i) & \"%\')\"
    End if
Next

strSQL = strSQL & \"  WHERE Kategori = \" & Request.Form(\"Kategori\")
Set objRS = objConn.Execute(strSQL)

Do while Not objRS.EOF
Response.write objRS(\"Citat\") & \"<br/><hr/><br/>\"
objRS.Movenext
Loop
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Else
%>
<form action=\"<%= Request.ServerVariables(\"SCRIPT_NAME\") %>\" method=\"post\">
<input type=\"text\" size=\"30\" name=\"Soegeord\"> Flere søgeord adskilles med mellemrum.<br/>
<select name=\"Kategori\">
%>
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
Set objRS = objConn.Execute(\"SELECT ID, Kategori FROM kategori\")
Do while Not objRS.EOF
Response.write \"<option value=\"\"\" & objRS(\"ID\") & \"\"\">\" & objRS(\"Kategori\") & \"</option>\"
objRS.Movenext
Loop
Response.write \"</select>\"
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<br/><input type=\"submit\" value=\"Søg\">
<%
End If
%>
</body>
</html>
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 20:17 #11
Og jeg sidder så og sover:

<html>
<head>
  <title>Søg</title>
</head>
<body>
<%
strConnect = \"xxxxxxxxxx xxxxxxxxxxxx xxxxxxx\"

If Request.Form(\"Kategori\") <> \"\" Then
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
strSQL = \"SELECT * FROM Citat\"
arrSogeord = Split(Request.Form(\"Soegeord\"), \" \")
For i = 0 to Ubound(arrSogeord)
    If i = 0 Then
      strSQL = strSQL & \" WHERE (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    Else
      strSQL = strSQL & \" OR (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    End if
Next

strSQL = strSQL & \"  WHERE Kategori = \" & Request.Form(\"Kategori\")
Set objRS = objConn.Execute(strSQL)

Do while Not objRS.EOF
Response.write objRS(\"Citat\") & \"<br/><hr/><br/>\"
objRS.Movenext
Loop
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Else
%>
<form action=\"<%= Request.ServerVariables(\"SCRIPT_NAME\") %>\" method=\"post\">
<input type=\"text\" size=\"30\" name=\"Soegeord\"> Flere søgeord adskilles med mellemrum.<br/>
<select name=\"Kategori\">
%>
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
Set objRS = objConn.Execute(\"SELECT ID, Kategori FROM kategori\")
Do while Not objRS.EOF
Response.write \"<option value=\"\"\" & objRS(\"ID\") & \"\"\">\" & objRS(\"Kategori\") & \"</option>\"
objRS.Movenext
Loop
Response.write \"</select>\"
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<br/><input type=\"submit\" value=\"Søg\">
<%
End If
%>
</body>
</html>
Avatar billede okay Nybegynder
10. juli 2001 - 20:57 #12
skal jeg bruge den nedeste eller ?
Avatar billede okay Nybegynder
10. juli 2001 - 21:02 #13
det virker ik med den nedste:

http://www.web-zone.dk/lunddk/sog.asp

hvordan skal jeg connect til database ??

<%
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"db.mdb\")

If Request.Form(\"Kategori\") <> \"\" Then
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
strSQL = \"SELECT * FROM Citat\"

eller hvordan ?
Avatar billede okay Nybegynder
10. juli 2001 - 21:04 #14
og lige en ting hvad rager ID med kategori ??
(\"SELECT ID, Kategori FROM kategori\")
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 21:07 #15
Du skal bruge denne her:


<html>
<head>
  <title>Søg</title>
</head>
<body>
<%
strConnect = DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"db.mdb\")

If Request.Form(\"Kategori\") <> \"\" Then
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
strSQL = \"SELECT * FROM Citat\"
arrSogeord = Split(Request.Form(\"Soegeord\"), \" \")
For i = 0 to Ubound(arrSogeord)
    If i = 0 Then
      strSQL = strSQL & \" WHERE (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    Else
      strSQL = strSQL & \" OR (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    End if
Next

strSQL = strSQL & \"  AND Kategori = \" & Request.Form(\"Kategori\")
Set objRS = objConn.Execute(strSQL)

Do while Not objRS.EOF
Response.write objRS(\"Citat\") & \"<br/><hr/><br/>\"
objRS.Movenext
Loop
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Else
%>
<form action=\"<%= Request.ServerVariables(\"SCRIPT_NAME\") %>\" method=\"post\">
<input type=\"text\" size=\"30\" name=\"Soegeord\"> Flere søgeord adskilles med mellemrum.<br/>
<select name=\"Kategori\">
<%
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
Set objRS = objConn.Execute(\"SELECT ID, Kategori FROM kategori\")
Do while Not objRS.EOF
Response.write \"<option value=\"\"\" & objRS(\"ID\") & \"\"\">\" & objRS(\"Kategori\") & \"</option>\"
objRS.Movenext
Loop
Response.write \"</select>\"
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<br/><input type=\"submit\" value=\"Søg\">
<%
End If
%>
</body>
</html>   
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 21:08 #16
Jeg henter bare dine kategorier ud fra databasen således at hvis du smider en kategori mere i din kategoritabel kommer den automatisk med i dropdownboksen.
Avatar billede okay Nybegynder
10. juli 2001 - 21:21 #17
tjek nu \"siden kan ik vises\" ?
Avatar billede okay Nybegynder
10. juli 2001 - 21:23 #18
her er min script:
<html>
<head>
  <title>Søg</title>
</head>
<body>
<%
strConnect = DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"db.mdb\")

If Request.Form(\"Kategori\") <> \"\" Then
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
strSQL = \"SELECT * FROM Citat\"
arrSogeord = Split(Request.Form(\"Soegeord\"), \" \")
For i = 0 to Ubound(arrSogeord)
    If i = 0 Then
      strSQL = strSQL & \" WHERE (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    Else
      strSQL = strSQL & \" OR (Citat LIKE \'%\" & arrSogeord(i) & \"%\')\"
    End if
Next

strSQL = strSQL & \"  AND Kategori = \" & Request.Form(\"Kategori\")
Set objRS = objConn.Execute(strSQL)

Do while Not objRS.EOF
Response.write objRS(\"Citat\") & \"<br/><hr/><br/>\"
objRS.Movenext
Loop
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Else
%>
<form action=\"<%= Request.ServerVariables(\"SCRIPT_NAME\") %>\" method=\"post\">
<input type=\"text\" size=\"30\" name=\"Soegeord\"> Flere søgeord adskilles med mellemrum.<br/>
<select name=\"Kategori\">
<%
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
Set objRS = objConn.Execute(\"SELECT * From citat\")
Do while Not objRS.EOF
Response.write \"<option value=\"\"\" & objRS(\"kategori\") & \"\"\">\" & objRS(\"Kategori\") & \"</option>\"
objRS.Movenext
Loop
Response.write \"</select>\"
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<br/><input type=\"submit\" value=\"Søg\">
<%
End If
%>
</body>
</html>   
Avatar billede jakobandersen Nybegynder
10. juli 2001 - 21:28 #19
DEt er ikke forbudt at tænke selv...  Jeg får denne fejlmeddelelse:

Invalid character

/lunddk/sog.asp, line 7

strConnect = DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"db.mdb\")

Kan du iikke selv gætte dig til at det er fordi der ikke er \" omkring altså:

strConnect = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"db.mdb\")

Avatar billede okay Nybegynder
10. juli 2001 - 23:19 #20
jeg fik ik den fejl ???
Avatar billede okay Nybegynder
10. juli 2001 - 23:20 #21
og hvad mener du med \"DEt er ikke forbudt at tænke selv\"
Avatar billede okay Nybegynder
10. juli 2001 - 23:21 #22
Ok den virker nu...men den skulle også søger i \"Alle\" kategori på engang !
Avatar billede okay Nybegynder
10. juli 2001 - 23:23 #23
og prøve lige at søge efter noget ! måske får du en fejl meddelse !

http://www.web-zone.dk/lunddk/sog.asp
Avatar billede jakobandersen Nybegynder
11. juli 2001 - 00:47 #24
Du udskriver jo ikke kategoriIDet men navnet i Value... Brug den kode jeg gav dig sidst.
Avatar billede okay Nybegynder
11. juli 2001 - 04:06 #25
det bruger jeg også men den fungere ik som du kan se !
Avatar billede jakobandersen Nybegynder
11. juli 2001 - 10:08 #26
Du bruger ikke det som jeg siger! Din drop down ser jo sådan her ud:

<option value=\"string\">string</option>

Det skal være:

<option value=\"intreger\">string</option>
Avatar billede okay Nybegynder
11. juli 2001 - 13:29 #27
der findes ik noget der hedder <option value=\"string\">string</option> i asp filen ?
Avatar billede jakobandersen Nybegynder
11. juli 2001 - 13:34 #28
Du har ændret i den kode jeg sendte dig, det er dette du har ændret:

<select name=\"Kategori\">
<%
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open strConnect
Set objRS = objConn.Execute(\"SELECT * From citat\")
Do while Not objRS.EOF
Response.write \"<option value=\"\"\" & objRS(\"ID\") & \"\"\">\" & objRS(\"Kategori\") & \"</option>\"
objRS.Movenext
Loop
Response.write \"</select>\"

Avatar billede okay Nybegynder
11. juli 2001 - 14:40 #29
har ændret det, men det virker ik !!!!
http://www.web-zone.dk/lunddk/sog.asp
Avatar billede jakobandersen Nybegynder
11. juli 2001 - 14:47 #30
Prøv at udskrive SQLen istedet for at eksekvere den, så kan du se eventuelle fejl.
Avatar billede okay Nybegynder
11. juli 2001 - 14:55 #31
moonduck > jeg er nybegynder :o så jeg ved ik hvordan man udskrive SQLen ?
Avatar billede jakobandersen Nybegynder
11. juli 2001 - 15:27 #32
Har du læst tutorialen på www.html.dk ?
Avatar billede tommyf Nybegynder
11. juli 2001 - 15:40 #33
Response.Write (SQL)
?
Avatar billede okay Nybegynder
11. juli 2001 - 17:03 #34
moonduck > jeps ! jeg tror nok jeg skal læse den endnu engang...
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