11 messaggi dal 17 gennaio 2006
Salve a tutti
spero che qualcuno mi possa aiutare. vi spiego.
Ho creato un piccolo ciclo che recupera delle variabili imposte dall'amministratore nel database (valore_ricette, valore_video, ecc) e poi conteggia per ogni utente presente nel database un valore di attività (attivita_utente) che altro non è che il valore di queste singole variabili moltiplicato per le azioni svolte dall'utente (ad es. quante ricette ha inserito, quanti voti ha dato, quanti commenti, ecc).
Il sistema cicla benissimo però c'è un problema. il valore attivita_utente alla fine dell'analisi per il singolo utente non si azzera e pertanto l'utente successivo si trova ad avere il suo valore con aggiunto quello degli utenti precedenti.
ho provato di tutto ma non riesco ad azzerare tale variabile. dove sbaglio?

vi riporto il codice qui di seguito
GRAZIE a chi mi potrà aiutare


<%
' memorizzo i valori imposti dall'amministratore
Set RSu=Server.CreateObject ("ADODB.Recordset")
stringa = "select * from costanti where id like 1"
set RSu = DBCONN.execute (stringa)
valore_ricette = rsu("valore_ricette")
valore_video = rsu("valore_video")
valore_foto = rsu("valore_foto")
valore_commenti = rsu("valore_commenti")
valore_voti = rsu("valore_voti")
'periodo_utenti = rsu("periodo_utenti")
rsu.close
set rsu = nothing
%>

<% 'inizio a ciclare gli utenti naturalmete prendo solo quelli attivi
Set RSz=Server.CreateObject ("ADODB.Recordset")
stringa = "select * from utenti where attivo like ""SI"""
set RSz = DBCONN.execute (stringa)
if not rsz.eof then
do while not rsz.eof
' azzero la variabile così da ricominciare da zero il conteggio successivo
attivita_utente = 0
id_utente = rsz("id")
%>

<% ' conto quante ricette ha inserito
Set RSq=Server.CreateObject ("ADODB.Recordset")
stringa = "Select count(*) as quanti from ricetta where id_utente like '"&id_utente&"'"
set RSq = DBCONN.execute (stringa)
quanti_ricette = rsq("quanti")
RSq.close
set rsq = nothing
calcolo_valore = quanti_ricette * valore_ricette
attivita_utente = attivita_utente + calcolo_valore
calcolo_valore = 0
%>

<% ' conto quanti voti ha inserito
Set RSq=Server.CreateObject ("ADODB.Recordset")
stringa = "Select count(*) as quanti from commenti where id_utente like '"&id_utente&"'"
set RSq = DBCONN.execute (stringa)
quanti_commenti = rsq("quanti")
RSq.close
set rsq = nothing
calcolo_valore = quanti_commenti * valore_commenti
attivita_utente = attivita_utente + calcolo_valore
calcolo_valore = 0
%>

<% ' conto quanti voti ha inserito
Set RSq=Server.CreateObject ("ADODB.Recordset")
stringa = "Select count(*) as quanti from voti where id_utente like '"&id_utente&"'"
set RSq = DBCONN.execute (stringa)
quanti_voti = rsq("quanti")
RSq.close
set rsq = nothing
calcolo_valore = quanti_voti * valore_voti
attivita_utente = attivita_utente + calcolo_valore
calcolo_valore = 0
%>

<% ' conto quanti video ha inserito
' per prima cosa faccio una query per recuperare id della ricetta
Set RSg=Server.CreateObject ("ADODB.Recordset")
stringa = "select * from ricetta where id_utente like '"&id_utente&"'"
set RSg = DBCONN.execute (stringa)
if not rsg.eof then
do while not rsg.eof
id_ricetta_tmp = rsg("id")
' a questo punto poichè ho ID vado a contare le ricette che hanno un video
Set RSe=Server.CreateObject ("ADODB.Recordset")
stringa = "Select count(*) as quanti from video_pubblici where id_ricetta like '"&id_ricetta_tmp&"'"
set RSe = DBCONN.execute (stringa)
quanti_video_ricetta = quanti_video_ricetta + rse("quanti")
id_ricetta_tmp = ""
RSe.close
set rse = nothing
rsg.movenext
loop
end if
RSg.close
set rsg = nothing
calcolo_valore = quanti_video_ricetta * valore_video
attivita_utente = attivita_utente + calcolo_valore
calcolo_valore = 0
%>

<% ' conto quante foto ha inserito
' per prima cosa faccio una query per recuperare id della ricetta
Set RSf=Server.CreateObject ("ADODB.Recordset")
stringa = "select * from ricetta where id_utente like '"&id_utente&"'"
set RSf = DBCONN.execute (stringa)
if not rsf.eof then
do while not rsf.eof
id_ricetta_tmp = rsf("id")
' a questo punto poichè ho ID vado a contare le ricette che hanno una foto
Set RSe=Server.CreateObject ("ADODB.Recordset")
stringa = "Select count(*) as quanti from foto_ricette where id_ricetta like '"&id_ricetta_tmp&"'"
set RSe = DBCONN.execute (stringa)
quanti_foto_ricetta = quanti_foto_ricetta + rse("quanti")
id_ricetta_tmp = ""
RSe.close
set rse = nothing
rsf.movenext
loop
end if
RSf.close
set rsf = nothing
calcolo_valore = quanti_foto_ricetta * valore_foto
attivita_utente = attivita_utente + calcolo_valore
calcolo_valore = 0
%>

<% 'a questo punto memorizzo il nuovo valore dell'attività dell'utente
set RSy = Server.Createobject("ADODB.Recordset")
RSy.open "select * from utenti where id like '"&id_utente&"'" ,DBCONN,3,3
rsy("attivita_utente")=attivita_utente
rsy.update
rsy.close
set rsy = nothing %>

<%
' lo scrivo a video
response.Write(rsz("username"))%> : <%response.Write(rsz("attivita_utente"))%><br />
<%
' passo all'utente successivo
rsz.movenext %>
<%loop
end if
rsz.close
set rsz = nothing
%>
11 messaggi dal 17 gennaio 2006
Risolto
grazie a chi ha letto e comunicato

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.