Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [MYSQL] Problema con record in un intervallo di tempo

    Ciao ragazzi,
    ho difficoltà con una query mysql.

    Ho una tabella con due colonne: data_inizio e data_fine.

    Voglio vedere se ci sono record in cui l'intervallo di tempo tra data_inizio e data_fine è compreso tra le variabili $data_inizio_utente e $data_fine_utente.

    Attualmente ho usato questa query ma non funziona:

    Codice PHP:
    $query "SELECT * FROM " TABELLA_PRENOTAZIONE " WHERE (((data_inizio) BETWEEN '$data_inizio_utente' AND '$data_fine_utente') OR ((data_fine) BETWEEN '$data_inizio_utente' AND '$data_fine_utente'))"
    Come si fa?

    Grazie
    Disegnatori e romanzieri d'Italia, visitate il mio sito, cerchiamo favolieri dark ed illustratori dark fantasy... http://www.neilgaimania.it

  2. #2
    Voglio vedere se ci sono record in cui l'intervallo di tempo tra data_inizio e data_fine è compreso tra le variabili $data_inizio_utente e $data_fine_utente.
    devono essere vere entrambe le condizioni quindi niente OR
    codice:
    $query = "SELECT * FROM " . TABELLA_PRENOTAZIONE . " 
    WHERE data_inizio >= '$data_inizio_utente'
    AND 
    data_fine <= '$data_fine_utente' ";
    sperando di aver capito il quesito.

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

  3. #3
    Non va... provo a spiegarti meglio!

    Il mio cliente in un sistema di prenotazione automatico seleziona i giorni in cui è prenotata una villa. A quel punto prima di inserire i dati, controllo con una query se nel periodo che sta inserendo non ci siano record che si sovrappongono.

    Ho provato la tua query con questi dati nel db:

    data_inizio: 20/12/06
    data_fine: 31/12/06

    e questi inseriti dall'utente
    $data_inizio_utente: 24/12/06
    $data_fine_utente:27/12/06

    Nonostante i giorni 24, 25, 26, 27 siano compresi nel record del db la query non restituisce nessun risultato e quindi io faccio inserire i nuovi dati...

    Ho provato diverse soluzioni ma senza successo... tra l'altro esiste il caso limite in cui $data_inizio_utente e $data_fine_utente coincidano (es. 26/12/06) così come la possibilità che le date inserite dall'utente precedano quella di inizio e siano successive alla data di fine (es. 19/12/06-01/01/07)...

    Tutto questo mi sta facendo confondere non poco...

    Spero di essere stato più chiaro e grazie del tuo aiuto!

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Codice PHP:
    WHERE data_inizio <= '$data_inizio_utente'
    AND 
    data_fine >= '$data_fine_utente' "; 

  5. #5
    Non va...

    Se inserisco un periodo che va dall'30/12/06 all'03/01/07 non trova record anche se nel db:

    data_inizio: 20/12/06
    data_fine: 31/12/06


  6. #6
    prova ad usare il formato previsto per le date, cioe' yyyy-mm-dd

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

  7. #7
    E' ovvio che uso quel formato!

    Le ho scritte qui nel post nel formato italiano solo per comodità...

    HELP! VVoVe:

  8. #8
    Originariamente inviato da pezzo
    E' ovvio che uso quel formato!

    Le ho scritte qui nel post nel formato italiano solo per comodità...

    HELP! VVoVe:
    chissa' perche' chi chiede HELP non mette le cose come realmente sono. Cosi' si deve interpretare quello che pare che forse sia quello che si cerca.

    metti un bell'esempio.

    valori nel db, valori nelle variabili. risultato atteso.

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

  9. #9
    Bastava leggere qualche post fa e cambiare il formato della data... cmq

    Nel DB (nome della tabella definito nella costante TABELLA_PRENOTAZIONE) c'è 1 record con i seguenti dati:
    data_inizio: 2006/12/20
    data_fine: 2006/12/31

    e questi sono quelli inseriti dall'utente
    $data_inizio_utente: 2006/12/24
    $data_fine_utente: 2006/12/27

    Mi aspetto che facendo una query sia possibile scoprire se ci sono sovrapposizioni tra i due periodi... quindi in questo caso la data inserita dall'utente coincide con quella del db nei giorni 24-25-26-27 dicembre e la query dovrebbe restituire un risultato.

    Tutto qua... le vostre query non funzionano così come le mie... per altri dettagli leggetevi di nuovo il post cambiando solo il formato della data...

    Grazie

  10. #10
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    I campi data_inizio e data_fine sono di tipo DATE?

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.