21. maj 2003 - 18:11Der 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") & "%')) "
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...
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.
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
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
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.
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.