Avatar billede woolbox Nybegynder
25. april 2002 - 01:27 Der er 15 kommentarer og
2 løsninger

Søgefunktion baseret på Access

Jeg er ikke så skrap til ASP (har 'leget' med det i nogle timer sammenlagt) - så bær over med at jeg måske forklarer visse ting unødvendigt kringler, og måske ikke i de rigtige termer ;o) - Mit spg. falder i to dele ...

* * * * * 1 * * * * *
Jeg ønsker en søgefunktion som søger blandt forskellige felter i én enkelt Access database. Felterne er både tekst og tal.

Jeg ønsker en stump kode som gør det muligt at søge vha. fil.asp?var1=value1&var2=value2 - og derudover at fx. et tal-felt der hedder 'PRIS' kan angives med min og max.

Jeg har allerede en ASP-side der laver et album bygget på enkelte variable, fx. 'shape=square' og vil gerne have ny SELECT-frase som virker med både album.asp?shape=square, og album.asp?back=green&shape=square og endelig album.asp?back=green&skape=square&price_min=100&price_max=200 - og endelig hvor 'price' defineres fast, og ikke som interval.

Således at jeg kan bruge samme ASP-side til at kalde et album kun baseret på en 'kategori' og som samtidig indeholder den kode der gør det muligt at angive flere variable og 'intervaller' (ved pris).

***** 2 ******
Jeg ønsker en HTML-form der vha. af dropdowns gør det muligt at vælge mellem forskellige værdier til variablene, fx. shape=triangle/square/circle og angivelse af min. pris, max. pris ELLER exact pris - endelig skal formen smide resultatet ind i som QueryStrings (Tror jeg nok de hedder) i den ASP-side fra pkt. 1 :o)

Design har selvsagt laveste prioritet, da jeg udelukkende vil kigge på funktionalitet indtil det spiller! :o)

* * * * *

Sidst men ikke mindst vil jeg gerne ha' nogle kommentarer i koden så jeg kan gennemskue hvad pokker der sker! ;o) - og mangler i mere info så spørg endelig!! :o)

Common ya Exprtz, gimme som luvin'!! ;o)
Avatar billede keysersoze Ekspert
25. april 2002 - 01:30 #1
kig på siderne www.html.dk - www.activeserverpages.dk - www.netcoders.dk

her kan du nemlig finde færdige eksempler til download som du kan kigge i, og desuden har de alle tutorials der - fx - kan lære dig at søge i en access database
Avatar billede woolbox Nybegynder
25. april 2002 - 01:32 #2
keysersoze -> Har du et deep-link? Jeg har før kigge rundt på de to sidste sites uden at finde en brik ;o)
Avatar billede keysersoze Ekspert
25. april 2002 - 01:40 #3
Avatar billede kimiwan Nybegynder
25. april 2002 - 01:47 #4
sådan her?  du skal selvfølgelig lige huske at hente værdierne ind vha. request("variabelnavn")..

'din sql streng uden kriterier
sql = "select * from tabel"

'test om kriterier skal inkluderes, og gør det, hvis de skal
if len(ffore)>0 then MINSTRENG = MINSTRENG & "fore = '" & ffore & "' AND "
if len(fback)>0 then MINSTRENG = MINSTRENG & "back = '" & fback & "' AND "
if len(fshape)>0 then MINSTRENG = MINSTRENG & "shape = '" & fshape & "' AND "
if len(fprice_min)>0 then MINSTRENG = MINSTRENG & "price_min <= " & fprice_min & " AND "
if len(fprice_max)>0 then MINSTRENG = MINSTRENG & "price_max >= " & fprice_max & " AND "

'føj dine to sql strenge sammen, hvis der er nogen kriterier angivet,
'og fjern de sidste "AND " fra slutningen
if len(MINSTRENG)>0 then sql = sql & " WHERE " & left(MINSTRENG,len(MINSTRENG)-4)
Avatar billede kimiwan Nybegynder
25. april 2002 - 01:54 #5
hehe.. price_min og price_max skal vist erstattes med price (eller hvad du nu kalder feltet med prisen). men det er altså bare de to lige til venstre for hhv. <= og >= tegnene
Avatar billede woolbox Nybegynder
25. april 2002 - 01:57 #6
kimiwan -> Jepz, lige bortset fra at price_min og price_max ikke eksisterer som felter i basen, men SELECT skal returnere de records hvor PRICE ligger melle fprice_min og fprice_max! :o) ... Eksperten holder max! :o)
Avatar billede woolbox Nybegynder
25. april 2002 - 01:58 #7
Damn, skal ikke kigge for længe på siden før man skriver kommentarer ;o) .... AutoReload - er det ikke nemt at sætte op? ;o) ...

Jeg prøver lige! :o)
Avatar billede woolbox Nybegynder
25. april 2002 - 02:08 #8
Ok, jeg får en HTTP500 nu ;o) ... Toppen af ASP-siden ser sådan ud ...


* * * * * ASP START * * * * *

<%
dim count
count=0
dim antalkolonner
antalkolonner = 3

fid = request.querystring("id")
ffore = request.querystring("fore")
fback = request.querystring("back")
fshape = request.querystring("shape")
fprice_min = request.querystring("price_min")
fprice_max = request.querystring("price_max")

    strDBPath = "ALBUM.mdb"

    'Connection String
      '(make sure at least one string is uncommented and you inserted the right sources!)
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False; Data Source=" & Server.MapPath(strDBPath)


'din sql streng uden kriterier
frase = "select * from tabel"

'test om kriterier skal inkluderes, og gør det, hvis de skal
if len(ffore)>0 then MINSTRENG = MINSTRENG & "fore = '" & ffore & "' AND "
if len(fback)>0 then MINSTRENG = MINSTRENG & "back = '" & fback & "' AND "
if len(fshape)>0 then MINSTRENG = MINSTRENG & "shape = '" & fshape & "' AND "
if len(fprice_min)>0 then MINSTRENG = MINSTRENG & "price <= " & fprice_min & " AND "
if len(fprice_max)>0 then MINSTRENG = MINSTRENG & "price >= " & fprice_max & " AND "

'føj dine to sql strenge sammen, hvis der er nogen kriterier angivet,
'og fjern de sidste "AND " fra slutningen
if len(MINSTRENG)>0 then frase = frase & " WHERE " & left(MINSTRENG,len(MINSTRENG)-4)



                        Set objConn = Server.CreateObject("ADODB.Connection")
                        Set objRs = Server.CreateObject("ADODB.Recordset")
                        objConn.Open strConn
                        objRs.Open frase,objConn, 0, 1



%>


* * * * * ASP SLUT * * * * *
Avatar billede keysersoze Ekspert
25. april 2002 - 02:15 #9
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelser om uskadelig http-fejl"

så kommer der en lidt mere brugbar fejl
Avatar billede woolbox Nybegynder
25. april 2002 - 02:48 #10
Takke Soze & Kiwi - nu virker det - næsten ....

** 1 **
Hvad er der så galt med følgende form - siden den ikke smider price_min og price_max over i min asp-side? :o)

    <form action="album_new.asp" method="POST">
        <input type="text" name="price_min">
        <input type="text" name="price_max"><br>
        <input type="submit" name="Action" value="Søg">
    </form>

** 2 **
Hvordan får jeg resultaterne sorteret efter fx. Kategori eller Pris? :o)
Avatar billede woolbox Nybegynder
25. april 2002 - 02:52 #11
** 3 **
Når jeg bruger price_max går det lidt galt ...

Max    Retur. priser
-----------------------------------
100    Alle, 100-900
200    200-900
300    300-900
400    400-900
osv.

Hvorfor deeet? ;o)
Avatar billede woolbox Nybegynder
25. april 2002 - 02:59 #12
Nu har jeg fundet ud af at man skal bruge strKeyword = Request.Form("Keyword") til formen, hvordan får jeg smartest puttet ind at ASP-siden skal hente alle de ønskede variable fra QueryString, medmindre de er defineret i Form - hvor variablene fra Form skal benyttes istedet? :o)
Avatar billede kimiwan Nybegynder
25. april 2002 - 08:52 #13
request.querystring("keyword")

eller hvis du er i tvivl om det kommer fra den ene eller den anden (form eller querystring), kan du bare bruge request("keyword")
Avatar billede woolbox Nybegynder
27. april 2002 - 19:27 #14
Ok, nu virker price min/max (kimiwan, du have vendt >/< forkert ;o)) ...

Ved at bruge method=get i min form kan jeg stadigvæk bruge request.querystring i ASP-siden.

Nu mangler jeg bare at få sorteret de returneret records, fx. efter pris - What 2 do? :o)
Avatar billede keysersoze Ekspert
28. april 2002 - 20:35 #15
du skal lave en "order by" i din sql - fx;

sql = "select * from DIN_TABEL order by pris"

om det skal sorteres stigende eller faldende styres med desc og asc - fx;

sql = "select * from DIN_TABEL order by pris desc"

sql = "select * from DIN_TABEL order by pris asc"
Avatar billede woolbox Nybegynder
02. september 2002 - 12:01 #16
Sorry, den var faldet ud af min tænketank - tak for hjælpen!! :o)
Avatar billede woolbox Nybegynder
02. september 2002 - 12:01 #17
- og mere tak!
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