Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    116

    Preavviso e data scadenza PHP - MYSQL

    Ciao Ragazzi,
    ho questo problema:

    Ho questa tabella:
    DATA SCADENZA
    PREAVVISO
    FREQUENZA

    Ho bisogno di uno script che mi mandi una mail di sistema (al login dell'applicazione) ‘X’ giorni prima della scadenza e con la frequenza decisa al momento dell’inserimento della stessa scadenza, ossia se inserisco:
    DATA SCADENZA = 31/03/2010
    PREAVVISO = 21
    FREQUENZA = 5

    MI DEVE MANDARE UNA MAIL I GIORNI 10/3/2010 (31-21!!) IL GIORNO 15/03/2010, IL 20/03/2010, IL 25/03/2010 e il 30/03/2010 OSSIA OGNI 5 GIORNI DALLA DATA DI PREAVVISO. (Naturalmente ogni volta ne deve mandare 1 sola per ogni giorno)
    Come posso strutturare lo script???

    Grazie mille
    Ciro

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    ciao
    io ti consiglierei di agire in questo modo.

    Aggiungi un campo alla tabella contenente il giorno in cui dovrai far spedire l'e-mail.
    La prima volta il giorno lo calcoli facendo data_scadenza - preavviso, quindi all'inizio avrai una situazione del genere:

    DATA SCADENZA 31/03/2010
    PREAVVISO 21
    FREQUENZA 5
    PROX_AVVISO 10/03/2010

    poi ogni volta che effettui il login controlli se il giorno corrente è uguale al giorno contenuto in PROX_AVVISO, e se è uguale fai partire l'e-mail e aggiorni il campo PROX_AVVISO in base al valore di FREQUENZA.

    Quindi, quando verrà effettuato il login il giorno 10/03, farai partire l'e-mail e poi aggiornerai i campi della tabella in questo modo:

    DATA SCADENZA 31/03/2010
    PREAVVISO 21
    FREQUENZA 5
    PROX_AVVISO 15/03/2010

    e così via

    Fatto questo però dovrai considerare anche altre cose tra cui:

    potrebbe essere che un utente non si connetta il giorno preciso (ovvvero potrebbe non connettersi il 10/03/2010 ma l'11)

    In questo caso devi controllare se la data PROX_AVVISO è minore o uguale della data corrente e in tal caso far partire l'e-mail e aggiornare la data di PROX_AVVISO.

    Anche in questo caso devi stare attento, infatti, se l'utente non si connette mai e si connette il 16/03/2010, il sistema controllerà che la data di PROX_AVVISO (settata a 10/03/2010) sia minore o uguale (e lo è) del giorno corrente e farà partire l'e-mail, ma quando aggiornerà la data di PROX_AVVISO andrà a inserire il valore 15/03/2010. In questo modo se l'utente farà un login il giorno dopo (o anche il giorno stesso) riceverà una nuova e-mail riferita però al giorno 15/03/2010.

    Per evitare ciò, quando aggiorni il valore di PROX_AVVISO, devi andare a controllare che il nuovo valore sia maggiore della data corrente, in caso contrario devi ricalcolarlo di nuovo (in base alla frequenza), controllare se va bene e fare l'update del campo.

    Spero di esserti stato d'aiuto
    Se hai dubbi chiedi pure

    ciao ciao e buon lavoro
    Jekkil

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    116
    Ciao Jekkil,
    ottima riflessione!!!! Avevo pensato di creare una nuova tabella e di calcolarmi a priori il tutto, ma la tua riflessione è stata davvero d'aiuto!!!!
    Adesso comincio a implementare il tutto, se ho problemi non esiterò a chiederti aiuto.
    Grazie
    Ciro

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Buon lavoro
    Jekkil

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 © 2025 vBulletin Solutions, Inc. All rights reserved.