Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Calcolo visite mese passato

    Buon 2007 a tutti !!!

    Gli anni passano ma i problemi restano...

    Il codice che posto di seguito calcola nella tbl_sessioni i visitatori del mese passato; non ha piu' funzionato appena entrati nel nuovo anno 2007; l'errore e' che il record non esiste o e' stato cancellato sulla riga di colore rosso:

    ADODB.Field error '800a0bcd'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    /default_020107.asp, line 187
    Se stampo la query naturalmente mi cerca il mese 12 dicembre dell'anno 2007 e questo causa il problema:

    SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = 12 and year(visitdate) = 2007 group by month(visitdate)
    Sapete suggerirmi una soluzione in merito?

    Codice attuale:

    Codice PHP:
    'VISITATORI MESE PASSATO
    datetosearch2 = dateadd("m",-1,date())

    SQL = ("SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = " & month(datetosearch2) & " and year(visitdate) = " & anno & " group by month(visitdate)") 
    Set objRS = objConn.Execute(SQL)

    [COLOR=red]tot_mese_passato = objRS.Fields("tot_mese_passato")[/COLOR] 
    Set objRS = Nothing 
    Vi ringrazio.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    perdonami:

    SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = 12 and year(visitdate) = 2007 group by month(visitdate)

    ma tu non hai record a dicembre 2007 vero ?

    se non hai record è normale che ti va in errore...


    intanto devi usare uno statement di chiusura recordset...


    if objRS.eof then

    ' fai qualcosa...

    else

    'fai qualcosaltro...

    end if

    poi fai in modo che legga il mese di gennaio e non il mese di dicembre...

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    grazie, ma la necessita' e' di calcolare le visite del mese precedente con la query che ho postato...

    il problema e' che questa query fa riferimento all'anno in corso ed al mese precedente...

    quindi dicembre-2007 per cui va in errore ( questo lo so, perche' nella tabella non ho record dic-2007 )...

    il problema e' come impostare una query che possa leggere ( senza intervenire manualmente ) anche dicembre 2006... mi spiego?

    Avrei risolto cosi', ma vorrei un parere confortante:

    codice:
    'VISITATORI MESE PASSATO
    datetosearch2 = dateadd("m",-1,date())
    
    SQL = ("SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = " & month(datetosearch2) & " and year(visitdate) = " & anno & " group by month(visitdate)")
    
    Set objRS = server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, objConn
    
    if not objRS.EOF then
       tot_mese_passato = objRS.Fields("tot_mese_passato")
    else
       anno2 = (Year(date) -1)
       SQL = ("SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = " & month(datetosearch2) & " and year(visitdate) = " & anno2 & " group by month(visitdate)")
       Set objRS = objConn.Execute(SQL)
       tot_mese_passato = objRS.Fields("tot_mese_passato")
    end if
          objRS.Close
          Set objRS = Nothing
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    controlla solo il caso in cui sei a gennaio......se sei nel mese di gennaio forzi l'intervallo a dicembre dell'anno addietro.......

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Un esempio per favore?
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  6. #6
    Utente di HTML.it L'avatar di antosto
    Registrato dal
    Nov 2002
    Messaggi
    112
    Secondo me il codice che hai postato va bene; io leverei il case else perchè secondo me non lo farà mai.

    il valore di datetosearch2 anche nel caso di cambio anno è perfettamente valido e ti restituisce le visite del mese precedente all'attuale.

    Quindi il codice secondo me lo puoi snellire così:

    Codice PHP:
    'VISITATORI MESE PASSATO
    datetosearch2 = dateadd("m",-1,date())

    SQL = ("SELECT sum(visitorcount) as tot_mese_passato, month(visitdate) as mese from tbl_sessioni where month(visitdate) = " & month(datetosearch2) & " and year(visitdate) = " & anno & " group by month(visitdate)")

    Set objRS = server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, objConn

    if not objRS.EOF then tot_mese_passato = objRS.Fields("tot_mese_passato")

    objRS.Close
    Set objRS = Nothing 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.