Avatar billede kaptajnknas Nybegynder
22. august 2004 - 23:20 Der er 25 kommentarer og
2 løsninger

Fejl i if-sætning

Hvad er der galt her, uanset hvad vidrestilles der til udbetalerror.asp

if request.form("cash") < rs("saldo") then
response.redirect ("udbetalerror.asp")
end if
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:21 #1
Prøv:

if CLng(request.form("cash")) < CLng(rs("saldo")) then

Eller med CInt i stedet for CLng..
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:22 #2
Avatar billede cillas Nybegynder
22. august 2004 - 23:23 #3
Prøv at cInt'e dem. Altså sikre dig at de er konverteret til tal, så det ikke er tekststrenge du får ind.

~C
Avatar billede kaptajnknas Nybegynder
22. august 2004 - 23:39 #4
Nej, ikke tale det virker :-(
Avatar billede kaptajnknas Nybegynder
22. august 2004 - 23:39 #5
Prøver igen
Det virker ikke.
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:41 #6
Hvad kan der komme til at stå, i henholdvis "cash" og "saldo"?
"saldo" skal være af typen "tal"..

Giv et eksempel, på hvordan man bruger din kode..
Avatar billede kaptajnknas Nybegynder
22. august 2004 - 23:47 #7
Ganske enkelt - i feltet "cash" skrives et beløb i kroner, det samme gælder i tabellen "saldo" eks.

if request.form ("cash") < rs("saldo") then
response.redirect ("udbetalerror.asp")
end if

bliver til:

if 25 < 18 then
response.redirect ("udbetalerror.asp")
end if
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:49 #8
Bare for at være sikker.. du bruger method="post" i dit <form ...>-tag, ik? :-)

Og kan "cash" være et komma tal (dvs "25,2") ?
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:50 #9
..ang komma tal.. hvad med "saldo"?
Avatar billede kaptajnknas Nybegynder
22. august 2004 - 23:52 #10
Jeg bruger method="post"
Hverken "cash" eller "saldo" kan være med komma, begge er altid med hele tal
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:54 #11
så burde CInt virke..

Prøv det her:

response.write "Fra formen: *" & request.form("cash") & "*<br>"
response.write "Fra databasen: *" & rs("saldo") & "*<br>"

'if request.form ("cash") < rs("saldo") then
'response.redirect ("udbetalerror.asp")
'end if

Hvad skriver den så?
Avatar billede jpvj Nybegynder
22. august 2004 - 23:54 #12
Umiddelbart ser det ud som om du checker forkert:

Du vil formodentlig teste, at der er penge nok på en konto, dvs. der må ikke hæves mere en saldoen er.

Dit < skal i så fald vendes om.
Avatar billede jpvj Nybegynder
22. august 2004 - 23:54 #13
Bortset fra det, er jeg helt enig med thesurfer i fejlsøgningen...
Avatar billede thesurfer Nybegynder
22. august 2004 - 23:55 #14
jpvj> Jeg tror at du har ret, ang ">" :-)
Avatar billede cillas Nybegynder
23. august 2004 - 00:00 #15
Prøv evt følgende:

_cash = Request.Form("cash")
_saldo = Request.Form("saldo)

if CInt(_cash) > CInt(_saldo) then
response.redirect ("udbetalerror.asp")
end if

~C
Avatar billede kaptajnknas Nybegynder
23. august 2004 - 00:00 #16
Så skrives:

Fra formen: *200*
Fra databasen: *48*


< tegnet er nu vendt
Avatar billede cillas Nybegynder
23. august 2004 - 00:04 #17
Sq selvfølgelig have været:

_cash = Request.Form("cash")
_saldo = rs("saldo")

if CInt(_cash) > CInt(_saldo) then
response.redirect ("udbetalerror.asp")
end if

~C
Avatar billede kaptajnknas Nybegynder
23. august 2004 - 00:10 #18
Cillas >> dit forslag virker :-)
Men hvorfor??
Avatar billede thesurfer Nybegynder
23. august 2004 - 00:14 #19
Jeg tror at det er pga rs("saldo") .. der sker mystiske ting, når man arbejder med databaser..

Somme tider må man ikke bruge samme rs("feltnavn") flere gange.. andre gang må man godt..
Avatar billede jpvj Nybegynder
23. august 2004 - 00:14 #20
Kan nu ikke se, hvorfor _ foran variablen har noget at side...

Prøv at slette dem igen, så du ender med

cash = Request.Form("cash")
saldo = rs("saldo")

if CInt(cash) > CInt(saldo) then
  response.redirect ("udbetalerror.asp")
end if


eller

if CInt(Request.Form("cash")) > CInt(Request.Form("saldo") then
  response.redirect ("udbetalerror.asp")
end if
Avatar billede jpvj Nybegynder
23. august 2004 - 00:15 #21
Hopper i seng nu, men smider lige et svar, hvis jeg har været til hjælp :-)

Sov godt mine kære med-experter :-)
Avatar billede thesurfer Nybegynder
23. august 2004 - 00:21 #22
jpvj> En lille fejl i 23/08-2004 00:14:31.. Request.Form("saldo") i stedet for rs("saldo")..
Avatar billede eagleeye Praktikant
23. august 2004 - 00:21 #23
Kig på de to if sætninger, forskellen er < og >

if request.form("cash") < rs("saldo") then

if CInt(_cash) > CInt(_saldo) then

Men brug Int i stedet for CInt.
Avatar billede thesurfer Nybegynder
23. august 2004 - 00:22 #24
Fejlen med "<" / ">" blev jo fanget allerede i 22/08-2004 23:54:33..
Avatar billede cillas Nybegynder
23. august 2004 - 00:23 #25
Hej Kaptajn.

Det er fordi den ikke havde fået konverteret den ene eller anden værdi til tal. Det kommer man uden om ved at gøre det på den måde der. Man burde også kunne konvertere direkte på selve request'et, men personlig får jeg bedre overblik på denne måde :)

Angåede mine _ foran værdien, så er det bare min personlige måde at kalde en variabel i en specifik kode på, så jeg ikke kalder dem det samme som requestens værdi. Igen bare en personlig vane :)

Men godt at høre det virker :)

~C
Avatar billede eagleeye Praktikant
23. august 2004 - 00:32 #26
Ja det har kaptajnknas nok ikke set:)
Avatar billede kaptajnknas Nybegynder
23. august 2004 - 00:37 #27
Det virker fint :-)
Og jeg siger tak for hjælpen og alle svar hertil.
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