Visualizzazione dei risultati da 1 a 6 su 6

Discussione: aiuto query

  1. #1

    aiuto query

    Ho una tabella articoli con un campo DATA REGISTRAZIONE in formato DATE (AAAA-MM-GG)
    vorrei selezionare tutti gli articoli in scadenza in automatico.
    La scadenza deve essere comunicata un mese prima.
    Es. ho un articolo che mi scade il 10.12.2006
    vorrei che in data 10.11.2006 fosse evidenziato in rosso.

    Come posso fare? grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    i record li estrai così

    select * from tabella where campo_data - interval 1 month >= curdate()

    poi li formatti tramite css

  3. #3
    ciao Nicola!
    Grazie della risposta, è perfetto!
    Sai per caso come posso fare ad inviare un avviso di scadenza ad intervalli di una settimana?

    Questa è la tabella
    ARTICOLO | DATA SCADENZA | STATUS

    Grazie alla tua dritta di prima converto 1 mese prima lo status da "ATTIVO" a "IN SCADENZA".
    Ora vorrei inviare una mail ad intervalli di 1 settimana che ricorda l'utente a rinnovare l'articolo.
    Chiaramente nella mail metterò il link di RINNOVO ad una pagina che conterrà una query di update del campo STATUS in "RINNOVA".

    Però guarda... mi blocco qui:

    Codice PHP:

    // tiro fuori dalla tabella gli articoli in scadenza
    $s="SELECT * FROM $table WHERE STATUS='IN SCADENZA'";
    $r=mysql_query($s);

    // Una volta ottenuto tutti gli articoli come faccio a dire per es. che ogni LUNEDI o GIOVEDI mi spedisca la notifica???
    notifica($destinatario);  //funzione che creo con il testo del messaggio 

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ma sei sicuro che la query che ti ho scritto faccia al caso tuo?
    Ad esempio ti restituirebbe anche record con data dicembre 2007 tanto per dire. Se ti servono solo i record che 'scadono' nei prossimi 30 giorni forse questa è più corretta

    select * from tabella where to_days(campo_data) - to_days(curdate()) between 0 and 30

    bisognebbe capire bene come funziona il tutto, se il rinnovo è a cadenza annuale eccetera.

  5. #5
    ciao nicola,
    sono dei record a scadenza annuale che si rinnovano di anno in anno quindi la query che mi hai scritto mi sembra perfetta! E' l'invio della notifica ad intervallo di 1 settimana o di 1 giorno preciso che non la so fare.

    Però ora che mi hai fatto notare questa cosa, ho notato che in questo script che mi hai suggerito tempo fa'

    Codice PHP:
    select from tabella 
    where week
    (curdate(),1between week(prima_data,1) and week(seconda_data,1
    non mi fanno vedere quei record che hanno la prima_data nel 2006 e la seconda_data nel 2007.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non mi ricordo il contesto della query.
    Forse è meglio se ritiri su la discussione relativa, così se non sarò io qualcun altro ti scriverà una query più corretta.

    Ora vado a dormire. Ne riparliamo domani. Buona notte.

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.