salve a tutti,
io ho questo db
id
codicecliente
mittente
tipomessaggio
oggetto
messaggio
stato
data
ora
a questo punto io faccio un controllo al fine di determinare i messaggi non letti, quelli inviati e quelli ricevuti isa da parte mia quando accedo alla pagina di amministrazione del sito sia da parte del cliente quando accede alla sua pagina riservata.
Il codice cliente è un valore univoco che contraddistingue l'utente in qualunque tabella del db quindi sia nella tabella messaggi che in quella schedaclienti il codice corrisponde.
il mio codice, quello dell'amministratore è cl000001 quello egli altri clienti sarà con lo stesso formato ma diverso dallo 01.
ora io faccio questo codice:
con l'obiettivo di controllare lo stato della messaggistica.codice:<% ContaMessInviati=0 ContaMessRicevuti=0 ContaMessNonLetti=0 'Apro il db e controllo lo stato dei messaggi set myConn = server.CreateObject("ADODB.Connection") dim strConnDb strConnDb = "" strConnDb = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/clienti.mdb") myConn.Open(strConnDb) mySqlSelect = "select * from Messaggi" set myRSComS = server.CreateObject("ADODB.Recordset") myRSComS.Open mySqlSelect, myConn if not(myRSComS.EOF) and not(myRSComS.BOF) then do while not(myRSComS.EOF) if (myRSComS("Stato")="Letto") then if (myRSComS("TipoMessaggio")="Inviato") and (myRSComS("CodiceCliente")<>Session("CodiceC")) Then ContaMessInviati = ContaMessInviati+1 end if if (myRSComS("TipoMessaggio")="Ricevuto") and (myRSComS("CodiceCliente")=Session("CodiceC")) Then ContaMessRicevuti = ContaMessRicevuti+1 end if end if if (myRSComS("Stato")="Non Letto") then ContaMessNonLetti = ContaMessNonLetti+1 if (myRSComS("TipoMessaggio")="Inviato") and (myRSComS("CodiceCliente")<>Session("CodiceC")) Then ContaMessInviati = ContaMessInviati+1 end if if (myRSComS("TipoMessaggio")="Ricevuto") and (myRSComS("CodiceCliente")=Session("CodiceC")) Then ContaMessRicevuti = ContaMessRicevuti+1 end if end if myRSComS.MoveNext loop else end if myRSComS.Close set myRSComS=nothing myConn.Close set myConn=nothing %>
ma ci deve essere un errore strutturale perchè anche quando un cliente ha un messaggio non letto risulta un messaggio non letto da me.
la variabile di sessione session("codiceC") si attiva a login efettuato e appunto x tutta la durata del login si porta in giro il codice di chi è entrato.
raga che cavolo sto sbagliando??
Grazie mille![]()

Rispondi quotando