Avatar billede Slettet bruger
05. maj 2002 - 23:17 Der er 17 kommentarer og
1 løsning

If sætning

Hej eksperter...

jeg har denne kode:

' 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("/erotik/bruger.mdb")
Conn.Open DSN

strSQL = "Select point_brugt from bruger WHERE id = " & session("brugerID")
set rs = conn.execute(strSQL)

SQL_COUNT2 = "SELECT SUM(bruger_id) AS ialt2 FROM billeder WHERE bruger_id = " & session("brugerID") &" and godkendt = 'ja'"
Set rs_COUNT2 = Conn.Execute(SQL_COUNT2)

SQL_COUNT = "SELECT SUM(rating) AS ialt FROM artikel WHERE bruger_id = " & session("brugerID")
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs_COUNT = Conn.Execute(SQL_COUNT)

temp = rs_COUNT("ialt")- rs("point_brugt")+ rs_COUNT2("ialt2")
if not isnumeric(temp) OR temp = "" OR isempty(temp) OR isnull(temp) OR len(temp) = 0 then
response.write("0")
else
response.write(temp)
end if

det jeg så vil er at hvis resultatet -5 giver under nul skal brugeren sendes til en anden side, og hvis det ikke gør skal siden vises.

hvordan gør jeg dette ?

mvh.
www.questis.dk
Avatar billede eagleeye Praktikant
05. maj 2002 - 23:33 #1
hvad med:

if (temp - 5) >= 0 then
  'Gør en ting
else
  Redirect("sidefornegativværdi.asp")
end if
Avatar billede Slettet bruger
05. maj 2002 - 23:47 #2
min kode er ved at være lang, så jeg vil ikke poste det hele, men har brugt din ide, men man bliver redirectet uanset hvad
Avatar billede eagleeye Praktikant
05. maj 2002 - 23:53 #3
hmm hvad så hvis man sætter CInt omkring temp:

if (CInt(temp) - 5) >= 0 then
  'Gør en ting
else
  Redirect("sidefornegativværdi.asp")
end if
Avatar billede Slettet bruger
05. maj 2002 - 23:57 #4
ok, den som har point nok, bliver redirected, den som får negativ værdi, får denne fejl:

0
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CInt'
Avatar billede Slettet bruger
06. maj 2002 - 00:00 #5
tror jeg har luret den, der skal bare byttes om på de to munduler uden CInt
Avatar billede eagleeye Praktikant
06. maj 2002 - 00:03 #6
arh så udvid den første if til at sætte temp = 0 hvis den er tom:

temp = rs_COUNT("ialt")- rs("point_brugt")+ rs_COUNT2("ialt2")
if not isnumeric(temp) OR temp = "" OR isempty(temp) OR isnull(temp) OR len(temp) = 0 then
  response.write("0")
  temp = 0
else
Avatar billede Slettet bruger
06. maj 2002 - 00:09 #7
ser ud til det virker... men ved ikke lige hvad du lavede om ?
Avatar billede Slettet bruger
06. maj 2002 - 00:12 #8
nope, det virker heller ikke, du får hele koden nu, ved ikke hvad der er galt:
Avatar billede Slettet bruger
06. maj 2002 - 00:12 #9
<%
if session("brugernavn") = "" then
  response.redirect("/erotik/login.asp")
end if
%>
<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/erotik/bruger.mdb")
Conn.Open DSN
SQL_tjek = "select * from bruger_artikel where bruger_Id = " & Session("brugerID") & " and artikel_id = " & Request.QueryString("id") & ""
set rs = conn.execute(SQL_tjek)
if rs.EOF then

' 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("/erotik/bruger.mdb")
Conn.Open DSN

strSQL = "Select point_brugt from bruger WHERE id = " & session("brugerID")
set rs = conn.execute(strSQL)

SQL_COUNT2 = "SELECT SUM(bruger_id) AS ialt2 FROM billeder WHERE bruger_id = " & session("brugerID") &" and godkendt = 'ja'"
Set rs_COUNT2 = Conn.Execute(SQL_COUNT2)

SQL_COUNT = "SELECT SUM(rating) AS ialt FROM artikel WHERE bruger_id = " & session("brugerID")
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs_COUNT = Conn.Execute(SQL_COUNT)

temp = rs_COUNT("ialt")- rs("point_brugt")+ rs_COUNT2("ialt2")
if not isnumeric(temp) OR temp = "" OR isempty(temp) OR isnull(temp) OR len(temp) = 0 then
  response.write("0")
  temp = 0
else
end if

if (temp - 5) >= 0 then
SQLstmt = "INSERT INTO bruger_artikel (bruger_id,artikel_id)"
SQLstmt = SQLstmt & " VALUES ('" & Session("brugerID") & "','" & Request.QueryString("id") & "')"
Conn.Execute (SQLstmt)

ligTil = 5

If ligTil > 0 Then

' Hent fra databasen afhængig af værdien id fra URL
sql = "UPDATE bruger SET point_brugt = (point_brugt + " & ligTil & ") WHERE id = " & session("brugerID")
Conn.execute (sql)
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
end if
end if
%>
<!-- #include virtual = "/erotik/faste/over.asp" -->
<%
Session.LCID = 1030

'[ClearHTMLTags]
   
'Coded by Jóhann Haukur Gunnarsson
'joi@innn.is
   
'  Purpose: This function clears all HTML tags from a
'          string using Regular Expressions.
'  Inputs: strHTML;
'            A string to be cleared of HTML TAGS
'    intWorkFlow;
'            An integer that if equals to 0 runs only the RegExp filter
'              .. 1 runs only the HTML source render filter
'              .. 2 runs both the RegExp and the HTML source render
'              .. >2 defaults to 0
'  Returns: A string that has been filtered by the function
   
function ClearHTMLTags(strHTML, intWorkFlow)
  'Variables used in the function
       
  dim regEx, strTagLess
       
  '---------------------------------------
  strTagless = strHTML
  'Move the string into a private variable
  'within the function
  '---------------------------------------

  'regEx initialization
  '---------------------------------------
  set regEx = New RegExp
  'Creates a regexp object       
  regEx.IgnoreCase = True
  'Don't give frat about case sensitivity
  regEx.Global = True
  'Global applicability
  '---------------------------------------

  'Phase I
  '    "bye bye html tags"
  if intWorkFlow <> 1 then
    '---------------------------------------
    regEx.Pattern = "<[^>]*>"
    'this pattern mathces any html tag
    strTagLess = regEx.Replace(strTagLess, "")
    'all html tags are stripped
    '---------------------------------------
  end if
       
  'Phase II
  '    "bye bye rouge leftovers"
  '    "or, I want to render the source"
  '    "as html."

  '---------------------------------------
  'We *might* still have rouge < and >
  'let's be positive that those that remain
  'are changed into html characters
  '---------------------------------------   

  if intWorkFlow > 0 and intWorkFlow < 3 then
    regEx.Pattern = "[<]"
    'matches a single <
    strTagLess = regEx.Replace(strTagLess, "<")

    regEx.Pattern = "[>]"
    'matches a single >
    strTagLess = regEx.Replace(strTagLess, ">")
    '---------------------------------------
  end if
       
  'Clean up
  '---------------------------------------
  set regEx = nothing
  'Destroys the regExp object
  '---------------------------------------   
       
  '---------------------------------------
  ClearHTMLTags = strTagLess
  'The results are passed back
  '---------------------------------------
end function


' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/erotik/bruger.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From artikel Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)



response.write "<center><table cellpadding='0' cellspacing='0' width='500' height='18'><tr><td style='background-image: url(/erotik/image/langknap.gif); padding-left: 5px;'><h1>" & rs("Tittel") & "</h1></td></tr><table>"
response.write "<center><table cellpadding='2' cellspacing='0' style='border-left: 1 solid #000000; border-right: 1 solid #000000; border-bottom: 1 solid #000000;' bgcolor='#FFFFFF' width='484px'>"
response.write "<tr><td width='75px'><h2>Forfatter:</h2></td><td><h2>"

dim forfatter
forfatter = rs("Forfatter")
'fjern html
forfatter = ClearHTMLTags(forfatter,2)

'Udskriver beskeden uden HTML tags
Response.Write(forfatter)

response.write "</h2></td></tr>"
response.write "<tr><td width='75px'><h2>Skrevet:</h2></td><td align='left' width='421'><h2>" & rs("dato") & "</h2></td></tr>"
response.write "<tr><td width='75px'><h2>Rating:</h2></td><td align='left' width='421'><h2>" & rs("rating") & "</h2></td></tr>"
response.write "<tr><td colspan='2'><hr size='1' color='#000000'></td></tr>"
response.write "<tr><td colspan='2'><h4>"

dim historie
historie = rs("historien")
'fjern html
historie = ClearHTMLTags(historie,2)

'Linieskift
historie = Replace(historie,chr(13),"<br>")

'Udskriver beskeden uden HTML tags
Response.Write(historie)

response.write "</h4></td></tr>"


if session("brugerID") = rs("bruger_id") then
response.write "</table>"
else
response.write "<tr><td colspan='2'><hr size='1' color='#000000'></td></tr>"
response.write "<tr><td valign='top' colspan='2'><h2><center><form action='rate.asp?id=" & rs("id") & "' method='post'>1&nbsp;<input type='radio' name='1' checked value='1'>2&nbsp;<input type='radio' name='1' value='2'>3&nbsp;<input type='radio' name='1' value='3'>4&nbsp;<input type='radio' name='1' value='4'>5&nbsp;<input type='radio' name='1' value='5'></h2></center></td></tr>"
response.write "<tr><td colspan='2'><center><input type='submit' value='Stem'></center></td></tr>"
response.write "</table>"
end if

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<!-- #include virtual = "/erotik/faste/under.asp" -->
<%
else
response.redirect("/erotik/login.asp")
End if
%>
Avatar billede eagleeye Praktikant
06. maj 2002 - 00:14 #10
Det er når temp giver NULL:
Du har selv taget højde for det i din IF sætning:
if not isnumeric(temp) OR temp = "" OR isempty(temp) OR isnull(temp) OR len(temp) = 0 then
  response.write("0")
  temp = 0 '<------ Sætter temp til en værdi som ikke er NULL
else
  response.write(temp)
end if

Det der så er sat ind er  at give temp en værdi (0) som ikke er NULL.
CInt(NULL) giver en script fejl, hvorimod CInt(0) ikke giver fejl.
Avatar billede eagleeye Praktikant
06. maj 2002 - 00:16 #11
jeg ville tro du stadig skal hvade CInt eller måske Int den virker på negative tal jeg er ikke helt sikker med CInt..:
if (Int(temp) - 5) >= 0 then
Avatar billede Slettet bruger
06. maj 2002 - 00:21 #12
den giver stadig adgang til siden med o point
Avatar billede Slettet bruger
06. maj 2002 - 00:24 #13
har fået det til at virke *SS* skulle bare rykke min ene end if ned i bunden *SS*
Avatar billede Slettet bruger
06. maj 2002 - 00:25 #14
nu er problemet så bare at man ikke kan se siden 2 gange *GG*
Avatar billede eagleeye Praktikant
06. maj 2002 - 00:35 #15
jeg er ikke helt med? 2 gange....

Hvis man ikke må komme ind på siden med 0 points kan du rette i if sætningen den test for >= 0 det kan du rette til > 0:
if (Int(temp) - 5) > 0 then
Avatar billede eagleeye Praktikant
06. maj 2002 - 00:36 #16
Glemte lige at skrive.. Jeg går i seng nu, jeg skal på arbejde i morgen.
Avatar billede Slettet bruger
06. maj 2002 - 00:42 #17
har løst det.... det hele skulle virke nu.... takker for din hjælp
Avatar billede Slettet bruger
06. maj 2002 - 00:42 #18
ok zez
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