Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Scadenza annuncio

  1. #1

    Scadenza annuncio

    Volevo chiedere una piccola cosa!

    Stavo pensando di fare uno script che permetta in modo automatico di cancellare un record dal database in base alla durata che verrà impostata in fase di inserimento!

    Mi spiego meglio:

    Se io in fase di inserimento setto come scadenza 7 giorni...come faccio a far togliere quel Record dopo 7 giorni e in automatico??

    Spero di essermi spiegato bene

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se tutti gli annunci scadono 7 giorni dopo la data di inserimento fai così

    delete from tabella where curdate() > campo_data_inserimento + interval 7 day

    se invece vuoi impostare per ogni singolo annuncio un periodo di validità diverso, allora usi nella tabella 2 campi, uno relativo alla data di inserimento e uno per l'appunto relativo alla durata.
    la query diventa così

    delete from tabella where curdate() > campo_data_inserimento + campo_durata day

    per la cancellazione o la fai ogni volta che viene aperta la pagina oppure se vuoi automatizzare il processo cerca crontab nel forum.

  3. #3
    Ti ringrazio

  4. #4
    Una cosa..ma le date nel DB in che formato devo salvarle però??

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    salvale in formato date oppure in datetime se ti serve anche l'ora di inserimento dell'annuncio.

  6. #6
    In sostanza..quello che non riesco a fare..è calcolare la data dell'ultimo giorno attivo per quell'annuncio..

    Esempio..
    Oggi lascio un annuncio 28-09-2007

    E decido che deve scadere tra 4 giorni...

    Come immagazzino nel DB quella data?? :master: :master:

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Te l'ho detto. Usi due campi, uno per la data di tipo date e un secondo campo di tipo intero in cui metti il numero di giorni trascorsi i quali l'articolo scadrà.

    A quel punto fai la query che ti ho già scritto
    delete from tabella where curdate() > campo_data_inserimento + campo_durata day

  8. #8
    Quindi in un campo avro 28-09-2007 e nel campo intero avrò 4?

    Poi in ogni pagina del sito posso richiamare quella funzione??

    In modo tale che sia continuamente aggiornato il DB??

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Allora, in fase di visualizzazione degli articoli se vuoi mostrare solo gli annunci che non sono ancora scaduti puoi fare così

    codice:
    select *,campo_data + interval campo_scadenza day as data_scadenza
    from tabella
    where curdate() <=
    campo_data + interval campo_scadenza day
    Periodicamente per ripulire la tabella dagli annunci scaduti lanci la query che ti ho già scritto.

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    però io piu che cancellarlo ti consiglierei di renderlo non visibile tramite un campo visibile 1/0

    immagina che il sistema risieda in un sito in cui un utente risponde all' annuncio...

    dopo X gg l' admin (che ipotesi era in ferie o fuoir sede) legge la risposta all' annuncio ma non riesce piu a risalire all' annuncio perchè non c'è! poi magari lo fai cancellare fisicamente dall' admin da un semplice pannello di controllo

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.