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

    clausula beetween più flessibile

    Devo fare la ricerca nel database di 2 date (data arrivo e data partenza)
    Il "problema" e' che usando beetween mi estrae solo i record che nel database hanno quel range di date.

    Vorrei farlo un po' piu' "flessibile" dicendo che puo' guardare anche 2-3 giorni prima e dopo, questo perche' ho alcune offerte nel db che hanno come date:

    valida_da= 22/04/2011 (campo nel db)
    valida_fino= 05/06/2011 (campo nel db)

    se io cerco dal 22 aprile al 29 aprile questa offerta esce senza problemi
    se invece cerco dal 21 aprile fino al 28 aprile questa offerta non esce ed e' un problema.

    Come posso modificare?
    Codice PHP:
    AND '$arrivo' between valida_da AND valida_fino and '$partenza' between valida_da and valida_fino 
    $arrivo e $partenza sono i giorni che scelgo dal form presente nella pagina precedente

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    semplicemente prima di passare i dati alla query sottrai e aggiungi un paio di giorni alle date
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da ciro78
    semplicemente prima di passare i dati alla query sottrai e aggiungi un paio di giorni alle date
    ma dici alle date della ricerca che effettuo o alle date presenti nel database?
    Inoltre dalle date dipende anche il costo del soggiorno

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    bhe tu hai chiesto come fare unq query più flessibile. io ho risposto a quella domanda.


    $sql = "SELECT * FROM tbl WHERE data1 BETWEEN '$data1' AND '$data2'

    ora se vuoi più flessibilità nella query devi fare in modo che $data1 e $data2 non siano le date esatte selezionate dal cliente ma alla prima togli qualche giorno e alla seconda li aggiungi.

    poi pensi a gestire la prenotazione
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da ciro78
    bhe tu hai chiesto come fare unq query più flessibile. io ho risposto a quella domanda.


    $sql = "SELECT * FROM tbl WHERE data1 BETWEEN '$data1' AND '$data2'

    ora se vuoi più flessibilità nella query devi fare in modo che $data1 e $data2 non siano le date esatte selezionate dal cliente ma alla prima togli qualche giorno e alla seconda li aggiungi.

    poi pensi a gestire la prenotazione
    credo di aver capito che cosa intendi, ma come faccio a togliere ed aggiungere 2 giorni?

  6. #6
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ho capito che devo mettere qualcosa tipo
    - interval 3 day

    ma la mia query attuale e' cosi'
    Codice PHP:
    DATE_FORMAT(valida_da'%d/%m/%Y') AS valida_da 
    come lo aggiungo?

    considerato che le date nel db le ho nel formato aaaa-mm-dd

    oppure devo metterlo nel where dove c'e' il beetween?

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    mi auto rispondo, ci sono riuscito

    cosi' e funziona
    Codice PHP:
    AND '$arrivo' between valida_da interval 3 day AND valida_fino interval 3 day and '$partenza' between valida_da interval 3 day AND valida_fino interval 3 day 
    grazie per l'aiuto

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.