Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    confrontare due coppie di date in una query

    Questo è il codice che utilizzo:
    Codice PHP:
    $result mysql_query("SELECT * FROM `news` WHERE `date` = '$today' AND `deadline` >= CURDATE() ORDER BY `news_id` DESC"); 
    Ovviamente, quello che mi serve è ottenere i record che corrispondono a due condizioni:
    - il campo date deve essere uguale alla variabile $today
    - e il campo deadline deve essere maggiore o uguale alla variabile $today
    In questo modo, dovrei ottenere tutti i record che sono stati inseriti oggi (campo date) ma che non sono ancora scaduti (campo deadline)
    Però non mi funziona...
    Cioè, se tolgo
    Codice PHP:
    AND `deadline` >= CURDATE() 
    , tutto ok, ma altrimenti non mi restituisce alcun record.
    Perchè?!?
    metatad
    graphic & web design

  2. #2
    dipende dal contenuto di deadline. cosa hai in quel campo?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    una data (campo del tipo date), nel formato 2007-04-17.
    metatad
    graphic & web design

  4. #4
    Originariamente inviato da metatad
    una data (campo del tipo date), nel formato 2007-04-17.
    prova ad usare between, tanto per verificare se ti estrae i dati, anche se alla fine della fiera e' quasi la stessa cosa.

    codice:
    $result = mysql_query("SELECT * 
                                   FROM `news` 
                                   WHERE `date` between CURDATE() AND `deadline` 
                                   ORDER BY `news_id` DESC");
    se i dati sono inseriti giornalmente quelli di domani ancora non ci sono in `date` ...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Non mi restituisce alcun valore anche così...
    E peraltro questa query mi darebbe un risultato diverso da quello desiderato anche se funzionasse; a me interessa ricavare i record inseriti in data odierna e la cui data di scadenza (deadline) non sia già passata.
    Con quella query avrei tutti i record inseriti tra oggi e la data di scadenza...
    metatad
    graphic & web design

  6. #6
    era tanto per verificare....

    la tua query e' corretta. stampa il contenuto di $today e' l'unica variabile di cui non si conosce il contenuto. meglio ancora se stampi la query completa.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ok, ora funziona (c'era un errore di formattazione in $today), però solo in parte...
    Ovvero, poichè non sempre c'è una scadenza, alcune volte il relativo campo deadline (che è di tipo date) contiene il valore 0000-00-00; risultato: ogni query ignora i record con questo valore, mentre a me occorre esattamente il contrario!
    Se, infatti, non c'è una scadenza, vuol dire che sono sempre validi...
    metatad
    graphic & web design

  8. #8
    codice:
    $result = mysql_query("SELECT * 
                           FROM `news` 
                           WHERE `date` = '$today'
                           AND 
                           (`deadline` = '000-00-00' OR `deadline` >= CURDATE() )
                           ORDER BY `news_id` DESC
                           ");

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Perfect!!!
    Grazie 1Mb...

    metatad
    graphic & web design

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.