• User Attivo

    Eliminare dati tramite datetime

    Ciao a tutti,

    premetto di aver già cercato in rete ma non ho trovato alcuna soluzione.

    Il problema è questo, ho una tabella nel database con il campo DATETIME, ora vorrei fare in modo di eliminare i dati che risultano piu vecchi di 7 giorni, che soluzione posso adottare?

    Utilizzare la query su un file che si aggiorna ogni minuto appesantisce il DB?

    Grazie in anticipo, Saluti.


  • Moderatore

    Ciao,

    dipende dal tuo server per quanto riguarda il carico.

    Io di solito consiglio di fare un controllo: prendersi la data dell'ultimo record dopo aver cancellato i passati in modo che poi tramite un if verifichi che quest'ultimo sia minore della data di oggi - 7giorni; se così fosse prosegue altrimenti si ferma ed esce dalla condizione e dovrebbe essere molto più conveniente per il server.

    Ovviamente dovresti avere un crontab o simularlo con PHP, cosa fattibilissima.

    Ciao!


  • User Attivo

    Ciao massimux,

    sì infatti penso di includerlo nel refresh generale della pagina, ovvero appena ti connetti parte il controllo e l'eliminazione.

    Quello che effettivamente non capisco, in che modo strutturo la query per il controllo dei giorni e l'eliminazione dei messaggi? Sarà banale ma non riesco a capire come strutturarla.

    Grazie, Saluti.


  • User Attivo

    Ho creato una soluzione un pò spartana, ma funziona..
    [php]
    //ELIMINO I MEX VECCHI DI 7 GIORNI
    $result = $db->sql_query("SELECT * FROM shout order by id");
    while ($rows = $db->sql_fetchrow($result)) {
    $datamex = $rows['date'];
    $ids = $rows['id'];
    list($giorno, $orario) = explode(' ', $datamex);
    $differenza=(strtotime(date("Y-m-d")) - strtotime("$giorno"))/(86400);
    $differenz = round($differenza, 1);
    if($differenz > 7) {
    $db->sql_query("delete from shout where id='$ids' AND global='0'");
    }
    }
    //FINE ELIMINAZIONE
    [/php]

    Se avete soluzioni più semplici rimango a disposizione.

    Grazie, Saluti.


  • Moderatore

    Ciao,

    è una query che gira da sola una volta al giorno a mezzanotte per esempio o gira sempre ad ogni visita di un utente?

    Se hai adoperato la seconda soluzione non ti sembra che possa rallentare il server? (ovviamente devi anche sapere quanti accessi hai/avrai)

    Ciaux


  • Moderatore

    Ciao,

    è una query che gira da sola una volta al giorno a mezzanotte per esempio o gira sempre ad ogni visita di un utente?

    Se hai adoperato la seconda soluzione non ti sembra che possa rallentare il server? (ovviamente devi anche sapere quanti accessi hai/avrai)

    Ciaux


  • User Attivo

    @massimux said:

    Ciao,

    è una query che gira da sola una volta al giorno a mezzanotte per esempio o gira sempre ad ogni visita di un utente?

    Se hai adoperato la seconda soluzione non ti sembra che possa rallentare il server? (ovviamente devi anche sapere quanti accessi hai/avrai)

    Ciaux
    Si purtroppo si avvia ogni volta che viene aggiornata solo la home page del sito. Mi sà che devo trovare una soluzione che fà in modo che a mezzanotte si avvia, hai qualche idea?

    Grazie per l'interessamento!


  • ModSenior

    Ciao Sovietiko,

    non puoi mettere lo script in cron?


  • User Attivo

    @Thedarkita said:

    Ciao Sovietiko,

    non puoi mettere lo script in cron?

    Ciao Thedarkita,

    scusami ma non capisco cosa intendi?

    Non ho idea di come fare il controllo, esempi pratici?

    Grazie, Saluti.


  • ModSenior

    Il cron serve per pianificare dei comandi, alcuni hosting ti permettono di utilizzarlo, facendo in modo di richiamare una determinata pagina in un determinato momento della giornata, in questo modo lo script viene eseguito sempre nel momento da te impostato, perchè se hai 10 visitatori al secondo che entrano nell'homepage è inutile eseguire l'operazione 10 volte, o comunque eseguirla ogni 2 secondi.
    Se il tuo hosting non ti permette di utilizzarlo, trovi anche dei servizi che ti permettono di farlo sia a pagamento che gratuiti(Ovviamente quest'ultimi sono più limitati).


  • User Attivo

    @Thedarkita said:

    Il cron serve per pianificare dei comandi, alcuni hosting ti permettono di utilizzarlo, facendo in modo di richiamare una determinata pagina in un determinato momento della giornata, in questo modo lo script viene eseguito sempre nel momento da te impostato, perchè se hai 10 visitatori al secondo che entrano nell'homepage è inutile eseguire l'operazione 10 volte, o comunque eseguirla ogni 2 secondi.
    Se il tuo hosting non ti permette di utilizzarlo, trovi anche dei servizi che ti permettono di farlo sia a pagamento che gratuiti(Ovviamente quest'ultimi sono più limitati).
    Ah grazie mille per l'info.

    Cerco qualche info in più su questa cosa, a presto.