30. januar 2004 - 22:20
Der er
7 kommentarer og 1 løsning
Hvis formularen er tom skal der gøres noget
Hvordan kan jeg gøre sådant at hvis brugeren ikke har indtastet noget som helst i alle felterne skriver jeg noget til brugeren i en response.write? Min kode ser således ud: strSQL = "Select * From huse Where " If Request("omraade") <> "" Then strSQL = strSQL & " omraade = " & Request("omraade") & " AND" If Request("personer") <> "" Then strSQL = strSQL & " personer = " & Request("personer") & " AND" If Request("soverum") <> "" Then strSQL = strSQL & " soverum = " & Request("soverum") & " AND" If Request("pool") <> "" Then strSQL = strSQL & " pool = " & Request("pool") & " AND" If Request("spa") <> "" Then strSQL = strSQL & " spa = " & Request("spa") & " AND" If Request("sauna") <> "" Then strSQL = strSQL & " sauna = " & Request("sauna") & " AND" If Request("husdyr") <> "" Then strSQL = strSQL & " husdyr = " & Request("husdyr") & " AND" If Request("tv") <> "" Then strSQL = strSQL & " tv = " & Request("tv") & " AND" If Request("parabol") <> "" Then strSQL = strSQL & " parabol = " & Request("parabol") & " AND" If Request("havudsigt") <> "" Then strSQL = strSQL & " havudsigt = " & Request("havudsigt") & " AND" If Request("vaskemaskine") <> "" Then strSQL = strSQL & " vaskemaskine = " & Request("vaskemaskine") & " AND" If Request("opvaskemaskine") <> "" Then strSQL = strSQL & " opvaskemaskine = " & Request("opvaskemaskine") & " AND" If Request("braendeovn") <> "" Then strSQL = strSQL & " braendeovn = " & Request("braendeovn") & " AND" If Request("tv") <> "" Then strSQL = strSQL & " tv = " & Request("tv") & " AND" If Request("parabol") <> "" Then strSQL = strSQL & " parabol = " & Request("parabol") & " AND" ' slet evt. overskudende "AND" i strSQL strengen: If Right(strSQL,3) = "AND" Then strSQL = Left( strSQL, (Len(strSQL)-3) ) Set rs = Conn.Execute(strSQL) if rs.eof then Response.Write "<p class=""error"">Der blev desværre ikke fundet nogle huse på din søgning</p><p><a href=""java script:history.back()""><-- Søg igen</a></p>" else
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
30. januar 2004 - 22:23
#1
Skal mindst et felt være udfyldt? Eller skal alle felter være udfyldt?
30. januar 2004 - 22:26
#2
man behøver ikke udfylde nogen som helst felter, så skal den bare trække alle poster ud af tabellen
30. januar 2004 - 22:29
#3
Ok så ville jeg lave det sådan at man skriver en SQL: SQL = "SELCT * FROM huse " .. .. din kode med if sætningerne .. indsæt denne linjer lige før: Set rs = Conn.Execute(strSQL) if strSQL <> "" then SQL = SQL & " WHERE " & strSQL og rette denne: Set rs = Conn.Execute(strSQL) Til: Set rs = Conn.Execute(SQL)
30. januar 2004 - 22:34
#4
Det virker ikke rigtig, hvad skal jeg skrive i forbindelse med then SQL = SQL & " WHERE " & strSQL Den kommer med flg. fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error. in query expression 'Select * From huse Where'.
30. januar 2004 - 22:37
#5
Lad mig prøve at vise det med din kode: SQL = "Select * From huse " strSQL = "" 'indeholder where delen If Request("omraade") <> "" Then strSQL = strSQL & " omraade = " & Request("omraade") & " AND" If Request("personer") <> "" Then strSQL = strSQL & " personer = " & Request("personer") & " AND" If Request("soverum") <> "" Then strSQL = strSQL & " soverum = " & Request("soverum") & " AND" If Request("pool") <> "" Then strSQL = strSQL & " pool = " & Request("pool") & " AND" If Request("spa") <> "" Then strSQL = strSQL & " spa = " & Request("spa") & " AND" If Request("sauna") <> "" Then strSQL = strSQL & " sauna = " & Request("sauna") & " AND" If Request("husdyr") <> "" Then strSQL = strSQL & " husdyr = " & Request("husdyr") & " AND" If Request("tv") <> "" Then strSQL = strSQL & " tv = " & Request("tv") & " AND" If Request("parabol") <> "" Then strSQL = strSQL & " parabol = " & Request("parabol") & " AND" If Request("havudsigt") <> "" Then strSQL = strSQL & " havudsigt = " & Request("havudsigt") & " AND" If Request("vaskemaskine") <> "" Then strSQL = strSQL & " vaskemaskine = " & Request("vaskemaskine") & " AND" If Request("opvaskemaskine") <> "" Then strSQL = strSQL & " opvaskemaskine = " & Request("opvaskemaskine") & " AND" If Request("braendeovn") <> "" Then strSQL = strSQL & " braendeovn = " & Request("braendeovn") & " AND" If Request("tv") <> "" Then strSQL = strSQL & " tv = " & Request("tv") & " AND" If Request("parabol") <> "" Then strSQL = strSQL & " parabol = " & Request("parabol") & " AND" ' slet evt. overskudende "AND" i strSQL strengen: If Right(strSQL,3) = "AND" Then strSQL = Left( strSQL, (Len(strSQL)-3) ) 'Hvis strSQL ikke er tom indsæt WHERE i SQL sætning: if strSQL <> "" then SQL = SQL & " WHERE " & strSQL Set rs = Conn.Execute(SQL)
30. januar 2004 - 22:39
#6
halli halli hallo --- det virker bare perfekt, tusind tak for hjælpen. Kan du ikke lige svare?
30. januar 2004 - 22:40
#7
Ok det kan jeg da ;)
30. januar 2004 - 22:46
#8
hmm ... det ser også ud til at din SQLopbygning kan laves lidt "smart": Dim SQL : SQL = "Select * From huse " Dim SQLAddon : SQLAddon = "" Dim bFirstIteration : bFirstIteration = true ' bruges "GET" som action, skal man bruge 'Request.Querystring' ' bruges "POST" som action, skal man bruge 'Request.FORM' if( Request.QueryString.Count > 0 ) then for each item in Request.Form if( bfirstIteration ) then SQLAddon = SQLAddon & " WHERE " end if if( LEN( SQLAddon ) > 0 ) then SQLAddon = SQLAddon & " AND " end if if( LEN( Request( item ) ) > 0 = then SQLAddon = SQLAddon & item & " = '" & Request( item ) & "'" end if next if( LEN( SQLAddon ) = 0 ) then Response.Write( "hmm ... skriv noget" ); end if end if /nute
Kurser inden for grundlæggende programmering