Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    query che cerca le offerte di febbraio

    Ciao a tutti
    sto utilizzando questo codice per estrarre tutte le offerte del mese di febbraio ma mi sono reso conto che mi mostra solo quelle che come data di inizio hanno il mese di febbraio nel campo valida_da

    Esempio:
    Se nel db inserisco un'offerta valida dal 3 febbraio al 5 marzo, questa viene visualizzata
    Se nel db inserisco un'offerta valida dal 30 gennaio al 5 marzo, questa NON viene visualizzata

    A questo punto, sapete dirmi come potrei modificare questa query?
    Codice PHP:
    $query_offerte="SELECT id_offerta, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, trattamento, id_albergo, bimbi_gratis, pacchetto_benessere, mezzo_di_trasporto FROM tbl_offerte WHERE MONTH(valida_da) = '02' "

  2. #2
    valida da <= mese selezionato AND valida a >= mese selezionato

    questa la teoria, sistema la tua query

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    quindi dici che cosi' sarebbe corretta?

    Codice PHP:
    $query_offerte="SELECT id_offerta, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, trattamento, id_albergo, bimbi_gratis, pacchetto_benessere, mezzo_di_trasporto FROM tbl_offerte WHERE MONTH(valida_da) <= '02' and MONTH(valida_fino) >= '02' and valida_fino >= CURDATE() "
    ho aggiunto quel and valida_fino >= CURDATE() in modo da non vedermi le offerte anche di febbraio degli anni passati

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    Quote Originariamente inviata da allin81 Visualizza il messaggio
    quindi dici che cosi' sarebbe corretta?

    Codice PHP:
    $query_offerte="SELECT id_offerta, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, trattamento, id_albergo, bimbi_gratis, pacchetto_benessere, mezzo_di_trasporto FROM tbl_offerte WHERE MONTH(valida_da) <= '02' and MONTH(valida_fino) >= '02' and valida_fino >= CURDATE() "
    ho aggiunto quel and valida_fino >= CURDATE() in modo da non vedermi le offerte anche di febbraio degli anni passati

    o come ti ha suggerito optime oppure puoi usare la funzione Between

    quindi between data1 and data2

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Ma il codice che ho scritto seguendo quello che ha detto optime e' corretto? Sembra che fa quello che deve fare ma non sono sicurissimo di averlo scritto correttamente

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    ad occhio mi sembra ok

  7. #7
    non va bene curdate. devi proprio usare la data selezionata, aggiungendo anche l'anno

  8. #8
    Semplificando con il riferimento di 30 gennaio - 3 marzo

    Codice PHP:
    $query_offerte "SELECT id_offerta, titolo, 
                     DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, 
                     DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, 
                     minimo_notti, prezzo, prezzo_come, trattamento, id_albergo, 
                     bimbi_gratis, pacchetto_benessere, mezzo_di_trasporto 
                     FROM tbl_offerte
                     WHERE '2013-01-30' >= valida_da
                     AND
                     '2013-03-03' <= valida_fino 

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

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    no ma quel valida_fino >= CURDATE() mi serve solo per mostrare le offerte attive in questo momento, in pratica dico che se l'offerta scade il 30/12/2013 me la deve mostrare perche' e' superiore alla data di oggi.
    Altrimenti mi mostrerebbe anche le offerte del 30/09/2013.

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.