Visualizzazione dei risultati da 1 a 8 su 8

Discussione: controllo tra date

  1. #1
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136

    controllo tra date

    Ho nel db i campi 'datainizio' e 'datafine' (entrambi timestamp)

    vorrei impedire che venga inserito nel db una nuova voce di cui la datainizio i giorni intermedi e la datafine si sovrappongano a quelle già nel database.

    immagino che debba fare una interrogazione al db con BETWEEN
    ma non riesco a capire come...

    spero di non essere stato troppo contorto

  2. #2
    mi associo alla tua rikiesta

  3. #3
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136
    ciao
    io ho (forse) risolto così:
    $result= mysql_query("SELECT * FROM tabella WHERE tabella_datainizio<='$datafine' AND tabella_datafine>='$datainizio' AND tabella_id!='$id'");

    era più semplice di quanto che immaginassi!

    Dico 'forse' perchè non l'ho ancora testato del tutto

    Spero che ti torni utile


  4. #4
    Scusa se ti cotntraddico m anon funge perke:

    datainizio datafine

    tab 19-02-2005 21-02-2005

    data 02-02-2005 20-02-2005

    se faccio come dici tu non mi trovo

  5. #5
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136
    innanzitutto io ho le date nel database come timestamp (es. 20051028000000).

    se le hai nel formato 19-02-2005 allora non puoi fare operazioni di confronto.

    ora, immaginiamo che sia per le prenotazioni di un albergo


    Il concetto è questo:


    per chiarezza cambio un po' i nomi

    $data_mio_arrivo e $data_mia_partenza sono le date che voglio che vengano confrontate con quelle presenti nel db.

    tabella_suo_arrivo e tabella_sua_partenza sono le date che sono nel db

    noi vogliamo controllare che la stanza non sia già prenotata nell'intervallo compreso tra $data_mio_arrivo (data del mio arrivo in albergo) ed $data__mia_partenza (data della mia partenza dall'albergo).


    quindi chiediamo al db: c'è qualcuno che ha già prenotato la sua partenza (tabella_sua_partenza) prima del mio arrivo ($data__mio_arrivo)? perchè se il mio arrivo è dopo la sua partenza allora è sicuro che non ci vediamo.
    Se invece il mio arrivo è prima della sua partenza gli chiediamo anche: questo qualcuno ha percaso prenotato il suo arrivo (tabella_suo_arrivo) prima della mia partenza ($data_mia_partenza)? perchè in questo caso è sicuro che almeno per qualche giorno ci ritroviamo a dover condividere il letto...

    A me sembra funzionare egregiamete
    Spero di non averti confuso ulteriormente le idee!

    notte...

  6. #6
    Ciao scusami un attimo, se io faccio il time stamp in sql
    del 2005-10-27 mi restituisce 200510280000 perke il size lo imlemento a 10.

    Ora in php se facessi la funzione mktime(0,0,0,2005-10-27) mi restituisce un n8umero del tutto diverso e cioè 1130411418, ora ato ke io ho l'esigenza di leggere dal DB il time stamp e mostrarlo a video nel formato europeo GG-MM-AAAA come lo converto?
    Se usassi la funzione date() di php ovvimanete me lo converte male dato ke lui legge come corretto il numero 1130411418.
    Come posso fare secondo te?

    il db è in timestamp(10)
    le date da conforntare sono nello stesso formato del timestamp del DB
    ma ora la stampa dei timstamp come la faccio?

    Sai dirmi come si leggono carattere per carattere un stringa?

    es : ho la parola casa e voglio leggere prima l "c" poi la "a" poi la "s" etc etc.

    Graze

  7. #7
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136
    puoi fare così:

    $annoinizio=substr($datainizio,0,4);
    $meseinizio=substr($datainizio,4,2);
    $giornoinizio=substr($datainizio,6,2);
    $annofine=substr($datafine,0,4);
    $mesefine=substr($datafine,4,2);
    $giornofine=substr($datafine,6,2);

    $data_arrivo=$giornoinizio."/".$meseinizio."/".$annoinizio;
    $data_partenza=$giornofine."/".$mesefine."/".$annofine;


  8. #8
    thanks capito

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 © 2024 vBulletin Solutions, Inc. All rights reserved.