Avatar billede tahoo Nybegynder
21. maj 2003 - 18:11 Der er 17 kommentarer og
1 løsning

Søge funktion

Hejsa..

Jeg er ved at lave en søgefunktion.
Det fungere på den måde at jeg har en side hvor der er 3 dropdown menuer, hvor så folk vælger det de vil søge på..

Alt dette virker også fint nok, problemet er bare hvis folk kun udfylder 1 eller 2 af dropdown menuerne, kan min SQL sætning ikke finde ud af det. Er der nogle, som har en løsning ? (fordi så vil min request.form jo være tom for den menu de ikke vælger en søge ord i...)

Min SQL kode :
strSQL = "Select * from tabel where ((kategorier like '%" & request.form("kat") & "%') and (person like '%" & request.form("mat") & "%') and (ting like '%" & request.form("ove") & "%')) "
Avatar billede hossein Nybegynder
21. maj 2003 - 18:17 #1
sql skal køres hvis dropdown er forskellige fra "" noget i den retning:
If minOption <> "" then
strSQL=.....
end if
Avatar billede roenving Novice
21. maj 2003 - 18:20 #2
Måske ville det være smart med et lille javascript client-side til at checke før de submitter ...
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:24 #3
Hvis folk ikke vælger noget i alle dropdown menuer.. skal de menuer de ikke vælger noget i bare være et "wildcard" - har prøvet med * som value hvis de ikke vælger noget.. men det virker ikke...

Altså det vil faktisk sige hvis folk slet ikke vælger noget i nogle af menuerne skal det bare hente alt...

Har du en løsning på det  ?
Avatar billede hossein Nybegynder
21. maj 2003 - 18:29 #4
Jeg har en, den har jeg lavet med MS SQL men pricippet er det jo samme, og det hele ligger på en side så vidt jeg kan huske, men jeg skal lige finde det.
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:30 #5
ok
Avatar billede mortrr Praktikant
21. maj 2003 - 18:31 #6
Noget lignende:

kat=replace(request.form("kat"),"'","''")
mat=replace(request.form("mat"),"'","''")
ove=replace(request.form("ove"),"'","''")
strWhere="WHERE 1=1 "
if kat<>"" then
  strWhere=strWhere+" AND (kategorier like '%" & kat & "%')"
end if
if mat<>"" then
  strWhere=strWhere+" AND (person like '%" & kat & "%')"
end if
if ove<>"" then
  strWhere=strWhere+" AND (ting like '%" & kat & "%')"
end if

strSQL = "Select * from tabel " & strWhere
Avatar billede mortrr Praktikant
21. maj 2003 - 18:32 #7
Sludder:

kat=replace(request.form("kat"),"'","''")
mat=replace(request.form("mat"),"'","''")
ove=replace(request.form("ove"),"'","''")
strWhere="WHERE 1=1 "
if kat<>"" then
  strWhere=strWhere+" AND (kategorier like '%" & kat & "%')"
end if
if mat<>"" then
  strWhere=strWhere+" AND (person like '%" & mat & "%')"
end if
if ove<>"" then
  strWhere=strWhere+" AND (ting like '%" & ove & "%')"
end if

strSQL = "Select * from tabel " & strWhere
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:34 #8
tak :-) virker lav et svar :-)
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:38 #9
hov hvorfor laver du dette :

kat=replace(request.form("kat"),"'","''")
mat=replace(request.form("mat"),"'","''")
ove=replace(request.form("ove"),"'","''")
Avatar billede hossein Nybegynder
21. maj 2003 - 18:40 #10
nah, så er dit problem løst!?
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:41 #11
jep, lav et svar og du skal få point... :-)
Avatar billede mortrr Praktikant
21. maj 2003 - 18:43 #12
Det er for at man ikke kan lave snask i din database.

Hvis man skriver ' i et søgefelt, afslutter man jo tekst-strengen.
Det kan hackere bruge.
Hvis du bruger en access base er det ikke så kriminelt, da den ikke giver mulighed for at lave noget slemt, men på fx en mysql eller ms-sql, kan man slette hele databasen.

hossein -> sorry jeg var igang med at skrive da du lagde din kommentar om at du ville finde noget kode, så jeg så den ikke.
Men jeg deler gerne pointene med dig.
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:44 #13
eller det er næsten løst.. men du har givet mig ideé til hvordan det skal løses... - så nu skal jeg nok finde ud af det :-)
Avatar billede hossein Nybegynder
21. maj 2003 - 18:45 #14
nej det er fint med mig, det er jo din!
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:46 #15
hossein >> lav et svar... så deler i lidt :-)
Avatar billede tahoo Nybegynder
21. maj 2003 - 18:48 #16
ok så får mortrr point..

Men tak for hjælpen "hossein" .-)
Avatar billede hossein Nybegynder
21. maj 2003 - 18:49 #17
morttr>> Jeg har bare lidt tvivl om at den virker under alle forhold? som f ex: hvis a og b ikke er tomme og c er tom!

eller hvordan tænker/lavet siden tahoo.dk?
Avatar billede hossein Nybegynder
21. maj 2003 - 18:49 #18
selv 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