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

    query con MONTH() particolare

    ciao a tutti
    dovrei effettuare una ricerca nel db utilizzando la clausola MONTH() nel where.

    In pratica ho 2 campi che sono le date che compongono un'offerta di vacanze e sono:
    valida_da
    valida_fino

    se l'offerta e' valida dal 1 febbraio al 28 febbraio e nella query ho
    Codice PHP:
    WHERE MONTH(valida_da) = '$mese' 
    non ho problemi se cerco un'offerta per il mese di febbraio (nel form faccio scegliere il mese in cui vogliono fare la vacanza)

    Se invece l'offerta e' valida dal 1 febbraio al 9 marzo e io voglio cercare un'offerta per il mese di marzo, la query non mi da nessun risultato mentre dovrebbe darmi la possibilità di prenotare dall'1 al 9.

    Come posso modificare questa clausola where?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Prova cosi, in teoria dovrebbe funzionare

    codice:
    WHERE MONTH(valida_da) = '$mese' OR MONTH(valida_fino) = '$mese'

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    no, ho provato a mettere un'offerta valida dal 28 febbraio al 10 marzo, nel motore ho scelto il mese di marzo e questa offerta non e' uscita...

  4. #4
    dato per scontato che $mese sia un intero da 1 a 12, la query dovrebbe essere
    codice:
    WHERE MONTH(valida_da) = $mese OR MONTH(valida_fino) = $mese
    se non ti funziona, stampati la query che evidentemente hai scritto male qualcosa dopo questa condizione, tipo magari hai tenuto vecchie condizioni in AND dimenticandoti di racchiuder l'OR tra parentesi
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si, senza gli apici funziona bene, grazie

  6. #6
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    qui mi riaggancio all'altra discussione...

    ho l'esempio pratico proprio ora:
    Offerta valida dal 28 febbraio al 16 marzo, si tratta di offerta settimanale, quindi il campo prezzo_come è impostato su 7

    In questo caso e' corretto far visualizzare questa offerta.

    Se invece l'offerta era dal 28 febbraio al 6 marzo o 7 marzo, questa offerta non doveva uscire (cercando per il mese di marzo) in quanto il cliente non potrebbe mai fare 7 notti dall'1 al 6 marzo o 7 marzo per farle dovrebbe per forza fare dall'1 all'8 di marzo, quindi un controllo mi sa che devo farlo anche sul campo prezzo_come, ma come devo farlo?

  7. #7
    Originariamente inviato da allin81
    qui mi riaggancio all'altra discussione...

    ho l'esempio pratico proprio ora:
    Offerta valida dal 28 febbraio al 16 marzo, si tratta di offerta settimanale, quindi il campo prezzo_come è impostato su 7

    In questo caso e' corretto far visualizzare questa offerta.

    Se invece l'offerta era dal 28 febbraio al 6 marzo o 7 marzo, questa offerta non doveva uscire (cercando per il mese di marzo) in quanto il cliente non potrebbe mai fare 7 notti dall'1 al 6 marzo o 7 marzo per farle dovrebbe per forza fare dall'1 all'8 di marzo, quindi un controllo mi sa che devo farlo anche sul campo prezzo_come, ma come devo farlo?
    risposto nell'altra discussione, questa direi che è da considerare chiusa
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    altro problemino, questa query non mi mostra i risultati che hanno i record con prezzo_come minore di 7, me li mostra tutti... da che dipende?
    Codice PHP:
    SELECT id_offertatitoloDATE_FORMAT(valida_da'%d/%m/%Y') AS valida_da_itaDATE_FORMAT(valida_fino'%d/%m/%Y') AS valida_fino_itaminimo_nottiprezzoprezzo_cometrattamentoid_albergomezzo_di_trasporto FROM tbl_offerte WHERE MONTH(valida_da) = AND prezzo_come 7 ORDER by prezzo/prezzo_come 
    se invece tolgo la parte "OR MONTH(valida_fino) = 2" allora funziona...

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.