Avatar billede kkd Nybegynder
01. maj 2003 - 17:27 Der er 31 kommentarer og
1 løsning

Stadig et or for meget!!!

Hej...

Jeg har et script, der ved at hente data fra en formular opsætter kriterier, som den udvælger poster i en database med.
Et lille uddrag:

dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or opr='" & x(i) & "' "
    else
      strSQL = "opr='" & x(i) & "' "
    end if
  end if
next

problemet er, at det bliver sat et or ind i sætningen før den første "operator", et eksempel på en strSQL udskrift:
Select * from tabel where (or opr='opr2' or opr='opr4' )
Avatar billede larsen Nybegynder
01. maj 2003 - 17:37 #1
for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or opr='" & x(i) & "' "
    else
      strSQL = "opr='" & x(i) & "' "
    end if
  end if
next
strSQL=MID(strSQL,3)
Avatar billede larsen Nybegynder
01. maj 2003 - 17:39 #2
Ups.
Den må jo heller undersøge om der står "OR" først :-)

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or opr='" & x(i) & "' "
    else
      strSQL = "opr='" & x(i) & "' "
    end if
  end if
next
If Left(strSQL,1,2)="or" then
  strSQL=MID(strSQL,3)
End If
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 17:40 #3
Problemet er, MÅSKE, at du allerede INDEN du går igang med at lave en IF-sætning, HAR tildelt variablen strSQL noget værdi (strSQL = SELECT * FROM...)
Hvis det er tilfældet vil din If/Else sætning aldrig komme til at køre igennem andet end den først tilstand hvor strSQL faktisk ER <> ""...

Synes bare lige umiddelbart at det kunne være årsagen til dit problem ;o)

Venligst
Kristian Bjørn
Avatar billede larsen Nybegynder
01. maj 2003 - 17:41 #4
If Left(strSQL,2)="or" then
  strSQL=MID(strSQL,3)
End If
Avatar billede kkd Nybegynder
01. maj 2003 - 17:52 #5
Nu skriver den:
lect * from Cichlider where (or opr='opr2' or opr='opr4' )

den har fjernet de 2 første bogstaver i SQL sætningen - det er vel også det MID funktionen gør (starter ved nummer 3)
Avatar billede grunken Nybegynder
01. maj 2003 - 17:54 #6
dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
    if left(strSQL,len(strSQL)) = "(" Then
      strSQL = strSQL & "opr='" & x(i) & "' "
    else
      strSQL = strSQL & " or opr='" & x(i) & "' "
    end if
    end if
  end if
next
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 17:57 #7
Del din sql-sætning op i to.
En med "select * from blabla where"
så laver to en SQL2, som du bruger i din løkke.
Når du kommer ud af løkken sætter du SQL1=SQL1&SQL2
Nemt og smertefrit :-)
Avatar billede kkd Nybegynder
01. maj 2003 - 18:00 #8
Select * from Cichlider where (or opr='opr2' or opr='opr4' ) er dens svar nu...

krisbjoern>>> Hvad skal jeg så gøre?
Avatar billede roenving Novice
01. maj 2003 - 18:01 #9
Hej,

undskyld jeg ikke fik skrevet det, men jeg havde nået at tænke tanken, da vi snakkede om det tidligere:

dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or opr='" & x(i) & "' "
    else
      strSQL = "opr='" & x(i) & "' "
    end if
  end if
next

strSQL = "Select * from tabel where (" & strSQL & ")"

hth
jes
Avatar billede grunken Nybegynder
01. maj 2003 - 18:04 #10
klart roenving ;D

min endte sådan ;D

<%
strSQL= "Select * from tabel where("

dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
    if mid(right(strSQL,len(strSQL)),len(strSQL)) = "(" Then
      strSQL = strSQL & "opr='" & x(i) & "' "
    else
      strSQL = strSQL & " or opr='" & x(i) & "' "
    end if
    end if
  end if
next

strSQL = strSQL & ")"

response.write strSQL
%>
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 18:05 #11
JEG GÅR IND FOR PROBLEM-LØSNING, hvor de andre forslag her mere er af SYMTOM-behandlings arten - No offence :o)

Du skal Vente med at definnere din SQL sætning til EFTER din løkke.
Og istedet for at skrive det til dig kan du se på roenvings kommentar ;o)

Venligst
Kristian Bjørn
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 18:05 #12
Ja ja ja SYNTOM... seføli
Avatar billede roenving Novice
01. maj 2003 - 18:08 #13
symptom *g*
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 18:17 #14
He he he...
Jeg overgiver mig.

Får du det til at virke?
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 18:19 #15
Krisbjoern> Var det ikke det jeg skrev?
Dan where delen i løkken, og sæt denne sammen med resten?
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 18:27 #16
the_bma_man ==> Tjoh... Dit svar er jo sådan set cool nok - Det var såmænd heller ikke for at såre nogle at jeg skrev det. Der er bare så mange muligheder inden for programmering/scripting at nogle vælger SYMPTOM-behandling istedet for at løse det egentlige problem.

Dit svar er jo ret kort og ikke underbygget af noget kode - derfor overså jeg nok lige i farten at hvad der gemte sig i din tekst.
Men dit svar er ikke nødvendigvis TYDELIGT nok til at hjælpe kkd på rette vej ;o)

Venligst
Kristian Bjørn
Avatar billede kkd Nybegynder
01. maj 2003 - 18:34 #17
Sorry... men jeg er ikke særlig god til at gennemskue ASP, mine resultater har jeg fået ved at spørge og forsøge mig frem, hele scriptet ser sådan ud:
    <%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")
Conn.Open DSN

if request("opr1") <> "" or request("opr2") <> "" or request("opr3") <> "" or request("opr4") <> "" or request("opr5") <> "" then opr = "ok" end if
if request("ph1") <> "" or request("ph2") <> "" or request("ph3") <> "" then ph = "ok" end if
if request("dh1") <> "" or request("dh2") <> "" or request("dh3") <> "" or request("dh4") <> "" or request("dh5") <> "" then dh = "ok" end if
if request("temp1") <> "" or request("temp2") <> "" or request("temp3") <> "" or request("temp4") <> "" then temp = "ok" end if
if request("omr1") <> "" or request("omr2") <> "" or request("omr3") <> "" or request("omr4") <> "" or request("omr5") <> "" then omr = "ok" end if
if request("str1") <> "" or request("str2") <> "" or request("str3") <> "" or request("str4") <> "" or request("str5") <> "" then str = "ok" end if
if request("mastr1") <> "" or request("mastr2") <> "" or request("mastr3") <> "" or request("mastr4") <> "" or request("mastr5") <> "" then mastr = "ok" end if

if opr = "ok" or ph = "ok" or dh = "ok" or temp = "ok" or omr = "ok" or str = "ok" or mastr = "ok" then
' SQL forespørgsel
strSQL = "Select * from Cichlider where "
else
' SQL forespørgsel
strSQL = "Select * from Cichlider"
end if

'Oprindelse
if opr = "ok" then
    strSQL = strSQL & "("
elseif opr <> "ok" then
    strSQL = strSQL & ""
end if

dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or opr='" & x(i) & "' "
    else
      strSQL = "opr='" & x(i) & "' "
    end if
  end if
next
If Left(strSQL,2)="or" then
  strSQL=MID(strSQL,3)
End If
if ph = "ok" and opr = "ok" or dh = "ok" and opr = "ok" or temp = "ok" and opr = "ok" or omr = "ok" and opr = "ok" or str = "ok" and opr = "ok" or mastr = "ok" and opr = "ok" then
    strSQL = strSQL & ") and "
elseif ph <> "ok" and dh <> "ok" and temp <> "ok" and omr <> "ok" and str <> "ok" and mastr <> "ok" and opr = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'pH
if ph = "ok" then
    strSQL = strSQL & "("
elseif ph <> "ok" then
    strSQL = strSQL & ""
end if

dim p(3)
p(1) = request("ph1")
p(2) = request("ph2")
p(3) = request("ph3")

for i = 1 to 3
  if p(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or ph='" & p(i) & "' "
    else
      strSQL = "ph='" & p(i) & "' "
    end if
  end if
next
if dh = "ok" and ph = "ok" or temp = "ok" and ph = "ok" or omr = "ok" and ph = "ok" or str = "ok" and ph = "ok" or mastr = "ok" and ph = "ok" then
    strSQL = strSQL & ") and "
elseif dh <> "ok" and temp <> "ok" and omr <> "ok" and str <> "ok" and mastr <> "ok" and ph = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'dH
if dh = "ok" then
    strSQL = strSQL & "("
elseif dh <> "ok" then
    strSQL = strSQL & ""
end if

dim d(5)
d(1) = request("dh1")
d(2) = request("dh2")
d(3) = request("dh3")
d(4) = request("dh4")
d(5) = request("dh5")

for i = 1 to 5
  if d(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or dh='" & d(i) & "' "
    else
      strSQL = "dh='" & d(i) & "' "
    end if
  end if
next
if temp = "ok" and dh = "ok" or omr = "ok" and dh = "ok" or str = "ok" and dh = "ok" or mastr = "ok" and dh = "ok" then
    strSQL = strSQL & ") and "
elseif temp <> "ok" and omr <> "ok" and str <> "ok" and mastr <> "ok" and dh = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'Temperatur
if temp = "ok" then
    strSQL = strSQL & "("
elseif temp <> "ok" then
    strSQL = strSQL & ""
end if

dim t(4)
t(1) = request("temp1")
t(2) = request("temp2")
t(3) = request("temp3")
t(4) = request("temp4")

for i = 1 to 4
  if t(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or temp='" & t(i) & "' "
    else
      strSQL = "temp='" & t(i) & "' "
    end if
  end if
next
if omr = "ok" and temp = "ok" or str = "ok" and temp = "ok" or mastr = "ok" and temp = "ok" then
    strSQL = strSQL & ") and "
elseif omr <> "ok" and str <> "ok" and mastr <> "ok" and temp = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'Omraade
if omr = "ok" then
    strSQL = strSQL & "("
elseif omr <> "ok" then
    strSQL = strSQL & ""
end if

dim o(5)
o(1) = request("omr1")
o(2) = request("omr2")
o(3) = request("omr3")
o(4) = request("omr4")
o(5) = request("omr5")

for i = 1 to 5
  if o(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or omr='" & o(i) & "' "
    else
      strSQL = "omr='" & o(i) & "' "
    end if
  end if
next
if str = "ok" and omr = "ok" or mastr = "ok" and omr = "ok" then
    strSQL = strSQL & ") and "
elseif str <> "ok" and mastr <> "ok" and omr = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'Størelse
if str = "ok" then
    strSQL = strSQL & "("
elseif str <> "ok" then
    strSQL = strSQL & ""
end if

dim s(5)
s(1) = request("str1")
s(2) = request("str2")
s(3) = request("str3")
s(4) = request("str4")
s(5) = request("str5")

for i = 1 to 5
  if s(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or str='" & s(i) & "' "
    else
      strSQL = "str='" & s(i) & "' "
    end if
  end if
next
if mastr = "ok" and str = "ok" then
    strSQL = strSQL & ") and "
elseif mastr <> "ok" and str = "ok" then
    strSQL = strSQL & ")"
else
    strSQL = strSQL & ""
end if

'Minimum akvarie-størrelse
if mastr = "ok" then
    strSQL = strSQL & "("
elseif mastr <> "ok" then
    strSQL = strSQL & ""
end if

dim m(4)
m(1) = request("mastr1")
m(2) = request("mastr2")
m(3) = request("mastr3")
m(4) = request("mastr4")

for i = 1 to 4
  if m(i) <> "" then
    if strSQL <> "" then
      strSQL = strSQL & "or mastr='" & m(i) & "' "
    else
      strSQL = "mastr='" & m(i) & "' "
    end if
  end if
next
if mastr = "ok" then strSQL = strSQL & ")" end if

'response.write strsql
'response.end

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if (rs.bof or rs.eof) then
Response.Write "Der er ingen fisk med disse krav."

else
Do

##En masse response.write ting...

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
end if

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Hvordan skal jeres forslag integreres??
Avatar billede roenving Novice
01. maj 2003 - 18:57 #18
Forstår godt du går galt, jeg kigger lige og kommer tilbage med noget mere 'elegant'

jes
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 19:04 #19
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")
Conn.Open DSN

strSQL1 = "Select * from Cichlider"
strSQL2 = ""
'opr
dim x(5)
x(1) = request("opr1")
x(2) = request("opr2")
x(3) = request("opr3")
x(4) = request("opr4")
x(5) = request("opr5")

for i = 1 to 5
  if x(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or opr='" & x(i) & "' "
    else
      strSQL2 = "opr='" & x(i) & "' "
    end if
  end if
next

'pH
dim p(3)
p(1) = request("ph1")
p(2) = request("ph2")
p(3) = request("ph3")

for i = 1 to 3
  if p(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or ph='" & p(i) & "' "
    else
      strSQL2 = "ph='" & p(i) & "' "
    end if
  end if
next

'dH
dim d(5)
d(1) = request("dh1")
d(2) = request("dh2")
d(3) = request("dh3")
d(4) = request("dh4")
d(5) = request("dh5")

for i = 1 to 5
  if d(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or dh='" & d(i) & "' "
    else
      strSQL2 = "dh='" & d(i) & "' "
    end if
  end if
next

'Temperatur
dim t(4)
t(1) = request("temp1")
t(2) = request("temp2")
t(3) = request("temp3")
t(4) = request("temp4")

for i = 1 to 4
  if t(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or temp='" & t(i) & "' "
    else
      strSQL2 = "temp='" & t(i) & "' "
    end if
  end if
next

'Omraade
dim o(5)
o(1) = request("omr1")
o(2) = request("omr2")
o(3) = request("omr3")
o(4) = request("omr4")
o(5) = request("omr5")

for i = 1 to 5
  if o(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or omr='" & o(i) & "' "
    else
      strSQL2 = "omr='" & o(i) & "' "
    end if
  end if
next

'Størelse
dim s(5)
s(1) = request("str1")
s(2) = request("str2")
s(3) = request("str3")
s(4) = request("str4")
s(5) = request("str5")

for i = 1 to 5
  if s(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or str='" & s(i) & "' "
    else
      strSQL2 = "str='" & s(i) & "' "
    end if
  end if
next

'Minimum akvarie-størrelse
dim m(4)
m(1) = request("mastr1")
m(2) = request("mastr2")
m(3) = request("mastr3")
m(4) = request("mastr4")

for i = 1 to 4
  if m(i) <> "" then
    if strSQL2 <> "" then
      strSQL2 = strSQL2 & "or mastr='" & m(i) & "' "
    else
      strSQL2 = "mastr='" & m(i) & "' "
    end if
  end if
next
strSQL = strSQL1 & strSQL2

'response.write strsql
'response.end

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if (rs.bof or rs.eof) then
Response.Write "Der er ingen fisk med disse krav."

else
Do

##En masse response.write ting...

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
end if

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 19:04 #20
Krisbjoern> Kodeeksempler nok?
:-)
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 19:07 #21
kkd>
Det kan sagtens laves smartere - mit forslag her er baseret på det, du havde postet idet jeg går ud fra, at du (i hvert fald delvis) forstår hvad der sker.
Avatar billede krisbjoern Nybegynder
01. maj 2003 - 19:12 #22
Jeps ;o)
Avatar billede kkd Nybegynder
01. maj 2003 - 19:25 #23
Jeg har sat en where ind i SQL1, og når jeg så kører scriptet får jeg sql-sætning som f.eks. her:
Select * from Cichlider where ph='ph1' or ph='ph2' or dh='dh4' or temp='temp4' or omr='omr1' or omr='omr4' or omr='omr5'

For at det skal virke med databasen, skal det se sådan ud:
Select * from Cichlider where (ph='ph1' or ph='ph2') and (dh='dh4') and (temp='temp4') and (omr='omr1' or omr='omr4' or omr='omr5')

Det var bl.a. derfor at jeg havde opsat alle de conditions jeg havde før...
Avatar billede kkd Nybegynder
01. maj 2003 - 19:26 #24
Se eventuelt http://www.akvariedatabasen.dk/mintest/soeg.htm så kan I få en bedre ide...
Avatar billede kkd Nybegynder
01. maj 2003 - 19:26 #25
... altså om hvad det drejer sig om!
Avatar billede roenving Novice
01. maj 2003 - 19:29 #26
Udnytter lige at der skal gentages og gentages og ...


    <%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")
Conn.Open DSN

dim r(7,5)

r(1,0) = "opr='"
r(1,1) = request("opr1")
r(1,2) = request("opr2")
r(1,3) = request("opr3")
r(1,4) = request("opr4")
r(1,5) = request("opr5")

r(2,0) = "ph='"
r(2,1) = request("ph1")
r(2,2) = request("ph2")
r(2,3) = request("ph3")

r(3,0) = "dh='"
r(3,1) = request("dh1")
r(3,2) = request("dh2")
r(3,3) = request("dh3")
r(3,4) = request("dh4")
r(3,5) = request("dh5")

r(4,0) = "temp='"
r(4,1) = request("temp1")
r(4,2) = request("temp2")
r(4,3) = request("temp3")
r(4,4) = request("temp4")

r(5,0) = "omr='"
r(5,1) = request("omr1")
r(5,2) = request("omr2")
r(5,3) = request("omr3")
r(5,4) = request("omr4")
r(5,5) = request("omr5")

r(6,0) = "str='"
r(6,1) = request("str1")
r(6,2) = request("str2")
r(6,3) = request("str3")
r(6,4) = request("str4")
r(6,5) = request("str5")

r(7,0) = "mastr='"
r(7,1) = request("mastr1")
r(7,2) = request("mastr2")
r(7,3) = request("mastr3")
r(7,4) = request("mastr4")


dim flag(7)
strSQL = ""

for i = 1 to 7 '7 kriterier
  nystrSQL = ""

  for j = 1 to 5 'op til 5 mulige i hvert kriterie
    if r(i,j) <> "" then
      if nystrSQL <> "" then
        nystrSQL = nystrSQL & "or " & r(i,0) & r(i,j) & "' "
      else
        nystrSQL = "(" & r(i,0) & r(i,j) & "' "
      end if
    end if
  next

  if nystrSQL <> "" then
    if strSQL <> "" then
      strSQL = strSQL & " and " & nystrSQL & ")"
    else
      strSQL = nystrSQL & ")"
    end if
  end if

next

if strSQL <> "" then
  strSQL = "Select * from Cichlider where " & strSQL
else
  strSQL = "Select * from Cichlider"
end if



'response.write strsql
'response.end

' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

if (rs.bof or rs.eof) then
Response.Write "Der er ingen fisk med disse krav."

else
Do

##En masse response.write ting...

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
end if

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

hth
jes
Avatar billede roenving Novice
01. maj 2003 - 19:32 #27
Hov,

I den endelige konkatenering skal det være:
if strSQL <> "" then
  strSQL = "Select * from Cichlider where (" & strSQL & ")"
else
  strSQL = "Select * from Cichlider"
end if

-- og forøvrigt fik jeg ikke brug for flag(7)

mvh
jes
Avatar billede roenving Novice
01. maj 2003 - 19:35 #28
-- og forøvrigt går løkken igennem 4 instanser, som aldrig kan forekomme, men jeg regner ikke med, at det er noget med tusindvis af forespørgsler i minuttet, så ...
Avatar billede kkd Nybegynder
01. maj 2003 - 20:55 #29
Tusind tak, det var lige det der skulle til. Jeg forstår godt nok ikke det hele endnu, men når lortet virker, kan jeg jo forsøge mig frem, for at finde ud af, hvad der gør hvad.
Jeg er bare ked af, at jeg kun har udlovet 30 point....
Endnu en gang tak.

/kkd :oD
Avatar billede the_bma_man Nybegynder
01. maj 2003 - 21:16 #30
Hmm, nå.
Tak for points - not!
Avatar billede roenving Novice
01. maj 2003 - 21:53 #31
Jamen ;~}

Vi laver en matrix i to dimensioner (altså en tabel) med 1 - 7 i den ene retning og 1 - 5 i den anden.

Der er 7 kriterier, der går vi igennem de (op til) 5 muligheder med en mellemvariabel (nystrSQL) efter de principper jeg gav dig i middagens svar, så den bliver til noget eller ikke bliver til noget.

Efter at de 5 muligheder er testet udvides (eller opstartes) den grundlæggende SQL-condition og vi går over til et nyt kriterie med nystrSQL nulstillet.

Til sidst opbygges den grundlæggende struktur i SQL-sætningen med eller uden where alt efter om der er udfyldt kriterier.

Det helt grundlæggende i dette script er, at du kun tester hver enkelt variabel een gang, så det burde også være en hel del billigere i processor-tid/belastning.

Takker for points

jes
Avatar billede kkd Nybegynder
04. maj 2003 - 09:53 #32
the_bma_man>>> Du må sgu undskylde, hvis du syntes du skulle have point, men da jeg prøvede dit forslag, virkede det ikke.... og det gjorde roenving's... That's life!
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