• User Newbie

    campo prolungato nel tempo... poi expired

    Ciao a tutti.

    Ho creato un db in cui, fra i campi "permanenti" c'è anche un campo che dovrebbe contenere dati "visibili fino al giorno x", per poi sparire automaticamente.

    In pratica il dbase deve mantenere intatti tutti i campi del record, meno uno, che invece deve riportare un'informazione che sparisce da sola (ad es. dopo dieci giorni) e che non sia più visibile. Qualora si reimmetta di nuovo l'informazione nel campo, rimane visibile altri 10 giorni e poi sparisce di nuovo...

    Qualcuno sa darmi qualche dritta?...


  • Super User

    inserisci il campo data che determinerà la data ultima di visibilità di quell'informazione e ne determina la non possibilità di scrittura fino alla scadenza del termine.

    campo1 -> informazione
    campo2 -> data

    if (campo2 <= oggi )
    echo campo1

    :ciauz:


  • User Attivo

    io farei cosi.
    la cella che ti dà la scadenza del record è un campo data, cioè che memorizza dati scritti come 25/12/2006.
    ora: la corrispondente notizia sarà visibile fino al Natale del 2006.
    per far ciò io utilizzerei una query sql del tipo:

    SELECT * FROM &#91;tabella&#93; WHERE &#91;dataScadenza&#93; < NOW
    

    oppure minore o uguale se vuoi comprendere anche il natale 2006


  • User Newbie

    Grazie a tutti per la risposta!

    Ho usato la forma "between" fra le date immesse nel db, nella query.

    Per l'esattezza ho dovuto formattare la data altrimenti non andava bene (nel mysql le date erano su un varchar, quindi sulla query ho dovuto usare l'espressione "....date_format(NOW(),'%d-%m-%Y') BETWEEN visibiledal AND visibileal....")

    Grazie ancora per i suggerimenti... aprono sempre gli occhi, soprattutto ad un microbo di wmaster come me, che ne ha tanto bisogno...

    :ciauz:


  • Super User

    sbagliato!!!

    se tieni una in un varchar ed il formato data è quello tieni presente che:

    01/12/2005 viene prima di 22/02/2003

    quindi sbagli tutte le date.

    le soluzioni sono due:

    1. cambi il formato di quel campo e lo metti di tipo data (come sarebbe logico)
    2. lasci varchar ma la data la memorizzi in questo formato:
      yyyy/mm/dd

    ciauz


  • User Newbie

    Ciao, Tymba.

    In effetti così sembrerebbe anche a me... però ho fatto alcuni controlli (rispetto ad "oggi") e il between così come lo sto usando funziona bene... voglio dire che immettendo:

    01/08/2005 come data iniziale
    10/08/2005 come data finale

    il giorno 05/08/2005 me lo da' "visibile"....

    se invece metto dal 06/08/2005 al 10/08/2005 me lo da "non visibile", e se metto dal 01/08/2005 al 04/08/2005 me lo da "non visibile". Il che è esattamente ciò che voglio.

    Probabilmente è quella forma "date" (italiana) che ho messo nella query che mi sta giocando a favore...

    Comunque mi hai messo una pulce nell'orecchio, e farò ancora altri test...

    Grazie ancora.

    Pierluigi :ciauz: