18 messaggi dal 27 maggio 2013
Ho un problema con una formula che utilizzo in un programma scritto in asp.

Ho delle variabili che memorizzo e il cui contenuto è esatto:
a=15
b=1
k=16

Se applico i valori nella formula
b+k-1-a
mi da come risultato....100

Se riscrivo la formula
b+1*k-1-a
funziona!

Non riesco a capire, qualcuno può aiutarmi a capire che succede?

Grazie e Buone feste
Besy
3 messaggi dal 24 novembre 2013
Hai sbagliato qualcosa nel codice, ma finché non lo posti non si può sapere cosa.
18 messaggi dal 27 maggio 2013
Riporto una parte del codice


selezione = Request.QueryString("selezione")
campionati = Request.QueryString("campionato")
calcio = Request.QueryString("calcio")
giron = Request.QueryString("girone")

gir=Ucase(giron)
scelta=Request.QueryString("scelta")
ar = Request.QueryString("ar")
giornata = Request.QueryString("giornata")


k = Request.QueryString("k")

an=Request.QueryString("an")
an1=Mid(an,1,2)
an2=Mid(an,3,4)

anno="S.S. 20"&an1&"/20"&an2


db="calcio"&an1



if k=16 or k=15 then

societaA="societa11,societa12,societa21,societa22,societa31,societa32,societa41,societa42,societa51,societa52,societa61,societa62,societa71,soc

ieta72,societa81,societa82,andata,replicaA"

societaR="societa12,societa11,societa22,societa21,societa32,societa31,societa42,societa41,societa52,societa51,societa62,societa61,societa72,soc

ieta71,societa82,societa81,ritorno,replicaB"

end if

if k=14 or k=13 then

societaA="societa11,societa12,societa21,societa22,societa31,societa32,societa41,societa42,societa51,societa52,societa61,societa62,societa71,soc

ieta72,andata,replicaA"

societaR="societa12,societa11,societa22,societa21,societa32,societa31,societa42,societa41,societa52,societa51,societa62,societa61,societa72,soc

ieta71,ritorno,replicaB"

end if

-----
-----
------

Set conn=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")

conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/"&db&".mdb")


sql= "SELECT (giornata) FROM squadre"&giron&campionati
rs.open sql,conn
a=rs("giornata")
b=giornata

if (b-a>1) and (ar="andata") then
%>
<script language="JavaScript" type="text/javascript">
alert('Inserire i risultati delle gare di andata precedenti. Grazie!');
history.go(-1);

</script>
<%
end if

if ((b+k-1)-a)>1 and (ar="ritorno") then
%>
<script language="JavaScript" type="text/javascript">
alert('Inserire i risultati delle gare di ritorno precedenti. Grazie!');
history.go(-1);

</script>
<%
end if
rs.close

if ar="andata" then

sql= "SELECT " & societaA & " FROM serie"&giron&campionati & " WHERE giornata = " & giornata

rs.open sql,conn

sb=rs.GetRows()

rs.close
else

sql= "SELECT " & societaR & " FROM serie"&giron&campionati &" WHERE giornata = " & giornata

rs.open sql,conn

sb=rs.GetRows()

rs.close
end if

conn.close
set rs=nothing
set conn=nothing
3 messaggi dal 24 novembre 2013
La butto lì: sembra che utilizzi variabili non tipizzate e per fare calcoli non mi pare la cosa migliore.
18 messaggi dal 27 maggio 2013
Ho utilizzato lo stesso algoritmo per 4 anni e ha sempre funzionato.

L'unica differenza è che prima utilizzavo un layout a pagina singola, quest'anno, per rendere il sito più pratico, ho cambiato con un layout a tre colonne.

Devo provare a cambiare il nome a k.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

jnat ha intuito il problema, prova così:
k = CInt(Request.QueryString("k"))

La variabile k contiene una stringa, che tu devi convertire esplicitamente ad intero usando la funzione Vbscript CInt.
Se non lo fai, il + potrebbe comportarsi come concatenatore di stringhe anziché come operatore dell'addizione.

Lo stesso problema potresti averlo anche sulle altre variabili a e b, quindi assicurati che tutti gli operandi coinvolti nell'operazione aritmetica siano numeri (e non stringhe numeriche).

ciao,
Moreno
Modificato da BrightSoul il 22 dicembre 2013 21.22 -

Enjoy learning and just keep making
18 messaggi dal 27 maggio 2013
ok, risolto.

Alla prossima

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.