Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Devo inviare una email 1 o 2 giorni dopo che il cliente parte

    Vorrei inviare una email ai clienti che lasciano l'hotel dopo 1 o 2 giorni in modo da farli rientrare sul sito per lasciare un commento sull'hotel, utile per gli altri futuri clienti.
    Come potrei strutturare la query?
    Si potrebbe fare qualcosa che vada in background senza che sono sempre io ad andare su una pagina che invia le email secondo la query?

    Avevo pensato di usare il campo data_partenza e quindi fare una query tipo

    select quello che mi serve from tabella where curdate ='$data_partenza'+1 o +2

    sarebbe una cosa plausibile?
    Mai dire Mai

  2. #2
    E' tutto fattibile.

    Se non vuoi fare il lavoro manualmente, ti basta settare un crontab, per es. uno al giorno magri notturno tipo: alle 02:00 di ogni giorno di ogni mese di ogni anno.

    Fatto questo se nel db hai la "data_partenza", fai eseguire dal file php che richiama il crontab, la tua query con tanto di invio mail all'indirizzo/i che estrai dal db con "data_partenza" maggiore di 1 o 2 giorni rispetto alla data odierna.

    Per quanto riguarda le date, QUI secondo me c'è tutto.

  3. #3
    pero' se lo faccio con cronotab dovrei avere il server mio locale (dove ho il mio programma di gestione fatto in php da me) sempre acceso, mentre io quando chiudo l'ufficio lo spengo tanto non serve, vabbe' pero' potrei inviare l'email anche alle ore 15 di tutti i giorni visto che sono aperto (festivita' a parte)

    Ad ogni modo avevo pensato una query tipo

    $sql1=mysql_query("select a.cognome, a.email, a.hotel, DATE_FORMAT(a.data_partenza, '%d/%m/%Y') AS partenza, data_partenza, b.link, b.hotel from gestione a, hotel b where data_partenza = adddate(curdate(), interval 2 day) order by cognome asc");


    anche se ora come ora non mi mostra niente...
    Mai dire Mai

  4. #4
    Originariamente inviato da trippacchiello
    pero' se lo faccio con cronotab dovrei avere il server mio locale (dove ho il mio programma di gestione fatto in php da me) sempre acceso, mentre io quando chiudo l'ufficio lo spengo tanto non serve, vabbe' pero' potrei inviare l'email anche alle ore 15 di tutti i giorni visto che sono aperto (festivita' a parte)

    Ad ogni modo avevo pensato una query tipo

    $sql1=mysql_query("select a.cognome, a.email, a.hotel, DATE_FORMAT(a.data_partenza, '%d/%m/%Y') AS partenza, data_partenza, b.link, b.hotel from gestione a, hotel b where data_partenza = adddate(curdate(), interval 2 day) order by cognome asc");


    anche se ora come ora non mi mostra niente...
    Direi che ti sei risposto da solo.

    Per la query non saprei dirti senza vedere la tabella, comunque in quella postata ci sono degli errori così su 2 piedi.

  5. #5
    si qualche errorino c'e' pero' non riesco a capire come fare il "where" in modo da farmi uscire solo le persone che sono partite ieri
    Mi sai dare una mano?
    Mai dire Mai

  6. #6
    Originariamente inviato da trippacchiello
    si qualche errorino c'e' pero' non riesco a capire come fare il "where" in modo da farmi uscire solo le persone che sono partite ieri
    Mi sai dare una mano?
    Premesso che non sono un genio delle query e che ci vorrebbe piero.mac che le mastica come dio comanda....

    codice:
    SELECT * FROM tabella 
    WHERE DATEDIFF(CURDATE(), data_partenza) > '3' 
    ORDER BY cognome ASC
    Quel > '3' mi fa ca##re ma al momento ho partorito questo che dovrebbe funzionare.

  7. #7
    Originariamente inviato da serialkiller
    Premesso che non sono un genio delle query e che ci vorrebbe piero.mac che le mastica come dio comanda....

    codice:
    SELECT * FROM tabella 
    WHERE DATEDIFF(CURDATE(), data_partenza) > '3' 
    ORDER BY cognome ASC
    Quel > '3' mi fa ca##re ma al momento ho partorito questo che dovrebbe funzionare.
    ho provato ma mi mostra tutti i record antecedenti al giorno che ho indicato, mentre io voglio visualizzare solo quelli del giorno prima
    Mai dire Mai

  8. #8
    forse ho risolto... ho messo = invece di minore o maggiore
    ma e' la soluzione corretta?
    Mai dire Mai

  9. #9
    Originariamente inviato da trippacchiello
    forse ho risolto... ho messo = invece di minore o maggiore
    ma e' la soluzione corretta?
    Io metterei >= in caso ti dimentichi di accendere il server per qualche giorno

    Per il resto a me funziona, ho provato su un sito dove hao delle news è l'estrazione la fa corretta.

    Volevo trovare un metodo più pulito, tipo sostituire quel >= '3' con una funzione di MySql ma non riesco come dicevo sono un po' lento nelle query.

    Prova, fatti un file a parte e testalo a me funziona.

  10. #10
    Originariamente inviato da serialkiller
    Io metterei >= in caso ti dimentichi di accendere il server per qualche giorno

    Per il resto a me funziona, ho provato su un sito dove hao delle news è l'estrazione la fa corretta.

    Volevo trovare un metodo più pulito, tipo sostituire quel >= '3' con una funzione di MySql ma non riesco come dicevo sono un po' lento nelle query.

    Prova, fatti un file a parte e testalo a me funziona.
    si ma se metto >= va a finire che mi spedisce l'email a tutti gli altri a cui non l'ho inviata fino ad ora, magari devo fare un controllo inserendo un nuovo campo di tipo int settando su 0, se invia l'email mette a 1 in modo che invia le email solo a chi ha 0
    o no?
    Mai dire Mai

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.