18. januar 2006 - 09:09Der er
12 kommentarer og 1 løsning
dynamisk sqlsætning
Jeg har en database med ca. 500 poster. Et af felterne hedder obj og indeholder talene 1 - 13 fordelt ned i rækker i forskellig rækkefølge.Derudover er der 10 andre felter med forskelligt indhold(tekst). Jeg vil gerne have at brugerne af databasen via en hjemmeside, kan spørge ind til databasen og selv opbygge sqlsætningen ved at taste tal ind i nogle formfelter evt vælge fra nogle lister og så trykke på en søgknap.
altså f.eks kunne sætningen komme til at se ud som: select * fra databasen hvor obj indeholder 1 og 4 og 7 og 12. umiddelbart víl det så betyde, at der skal være 4 lister at vælge fra - eller kan man gøre det smartere?
Kan du give et par eksempler på en datarække i din tabel, for jeg er ikke helt med på hvad du mener med at "obj" indeholder tallene 1-13. Står der kun ET tal, eller er det en komma sepereret liste??
Og hvad mener du med at at "obj skal indeholde 1 og 4 og 7 og 12"? For mig lyder det så som om at obj indeholder en komma sepereret liste.
Så kan du gøre brug af en dropdown box og sql IN metoden: <select name="objTal" multiple size="6"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> </select>
sql = "select * from dinTabel where 1=1 " if request.form("objTal") <> "" then sql = sql & " and obj IN ("& request.form("objTal") &")" end if set rs = conn.execute(sql)
fennec - det lyder jo godt - jeg skal have ihvertfald 3 textboxe hvor man så kan skrive noget kommaseparreret og det skal så sættes ind i en sqlsætning - kunne man tænke sig at textboxene blev lavet som funktioner, så man kunne lave en sqlsætning med select * fra tabel where funk1 and and funk2 and funk3 <> ""
Ikke helt med på, hvad du mener der, men i første omgang lyder det som et nej. Som du har skrevet det, er funkX funktioner i databasen, og de har ikke adgang til HTML information. Det er dog muligt at lave noget ala: set rs = conn.execute("select * from enTabel where "& funk() &"")
jeg har kigget lidt på den måde man laver søgning på i bilbasen - http://www.bilbasen.dk/ og det er noget lignende jeg gerne vil kunne lave, altså hvor man markere i en kanp(radiobutton) og vælger noget fra nogle dropdownlister og så udfører søgningen???
Så skal du have opbygget din sql sætningen ved hjælp af if-sætninger. På samme måde som i min post 19/01-2006 08:37:18:
sql = "select * from dinTabel where 1=1 " if request.form("searchIN") = "1" then sql = sql & " and newOld = 1 " else sql = sql & " and newOld = 2 " end if if request.form("kategori") <> "" then sql = sql & " and kategori = "& request.form("kategori") &" " end if if request.form("carBrand") <> "" then sql = sql & " and carBrand = "& request.form("carBrand") &" " end if if request.form("EnMultiSelect") <> "" then sql = sql & " and etEllerAndet in("& request.form("EnMultiSelect") &") " end if if request.form("etSøgeTekstFelt") <> "" then sql = sql & " and etEllerAndet like '%"& request.form("etSøgeTekstFelt") &"%' " end if ...
Synes godt om
Ny brugerNybegynder
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.