Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453

    Cancellazione records programmata.

    Ho una form che inserisce degli annunci ed inserisce anche la data in una tabella mysql.

    La data la rilevo al momento dell'inserimento usando:

    $date= date ('d-m-y');

    Adesso vorrei creare uno script che mi cancelli in automatico tutti gli annunci che hanno più di un mese...

    Come potrei fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Sul manuale di mysql ho trovato questa che dovrebbe fare al caso mio...

    SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

    dovrei mettere al posto di date_col $data...

    Adesso però mi basta fare...

    $date = curdate();

    curdate mi da YYYY-MM-DD e mi va bene...

    sarebbe meglio scrivere il mese per esteso, sarebbe più chiaro, ma poi ho difficoltà nell'ordinamento DESC...

    come faccio ad ordinare per data decrescente se faccio scrivere il mese in maniera estesa?


    Grazie


  3. #3
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    aiuto...


  4. #4
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    metti nel db il formato timestamp e quando metti in output i dati li formatti come meglio credi...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  5. #5
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Allora riepilogo:

    passo questa data:

    $date= date ('d-m-y');

    devo far cancellare tutti i records che hanno più di 30 giorni da oggi, cioè $date...

    Faccio cosi...

    $query2 = "DELETE * FROM rooms WHERE date .... come faccio???


  6. #6
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Originariamente inviato da luke83
    metti nel db il formato timestamp e quando metti in output i dati li formatti come meglio credi...
    Ciao luke, ho appena scritto quello che non riesco a fare, il campo nel db è DATE...

    mi aiuti?


  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    guarda che la risposta te l'ho data...

    nell'inserimento recuperi la data in timestamp e la piazzi nel db:

    $oggi=time();

    INSERT INTO......$oggi.....

    poi quando fai la chiamata sql fai:

    $un_mese_fa = ((int) time()) - 60*60*24*31;

    e

    DELETE * FROM rooms WHERE date <= $un_mese_fa

    così facendo semplifichi le cose....

    per utilizzare il formato che più ti aggrada nella stampa (a video) delle pagine di output usi

    date ('d-m-y',$data_da_db);

    tutto chiaro?

    spero di sì...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    con questa query non succede nulla

    $query2 = "DELETE * FROM rooms WHERE date <= '$date - interval 30 day'";

    ho messo a mano nel db un record con data 2005-1-2, ma non viene cancellato...


  9. #9
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Originariamente inviato da luke83
    guarda che la risposta te l'ho data...

    nell'inserimento recuperi la data in timestamp e la piazzi nel db:

    $oggi=time();

    INSERT INTO......$oggi.....

    poi quando fai la chiamata sql fai:

    $un_mese_fa = ((int) time()) - 60*60*24*31;

    e

    DELETE * FROM rooms WHERE date <= $un_mese_fa

    così facendo semplifichi le cose....

    per utilizzare il formato che più ti aggrada nella stampa (a video) delle pagine di output usi

    date ('d-m-y',$data_da_db);

    tutto chiaro?

    spero di sì...
    Grazie adesso provo...

  10. #10
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Se uso $date=time();

    nel db mi inserisce una sfilza di zeri...

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.