[ dusan87 @ 27.05.2009. 02:07 ] @
Imam problem oko rezervacije vozila , za rent-a-car..potrebno mi je neko resenje , jer nemam uopste ideju kako da uradim..
Ovako ..Imam formu za odabir datuma od kad do kad zeli korisnik da rezervishe auto. Kada klikne na dugme rezervisi ,,prebaci se na stranu na koju treba da izbaci vozila koja su slobodna u tom vremenskom periodu...

CREATE TABLE IF NOT EXISTS `Projekat`.`Vozilo` (
`idVozilo` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`naziv` VARCHAR(30) NOT NULL ,
`kubikaza` BIGINT UNSIGNED NOT NULL ,
`cena` INT UNSIGNED NOT NULL ,
`broj_sedista` INT UNSIGNED NOT NULL ,
`broj_kofera` INT UNSIGNED NOT NULL ,
`broj_vrata` INT UNSIGNED NOT NULL ,
`slika` VARCHAR(150) NOT NULL ,
`kategorija` VARCHAR(30) NOT NULL ,
`dostupnost` BOOLEAN NULL ,
`popust` FLOAT UNSIGNED NULL ,
`kilometraza` BIGINT UNSIGNED NOT NULL ,
`promocija_id` INT NULL ,
PRIMARY KEY (`idVozilo`) )
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci

CREATE TABLE IF NOT EXISTS `Projekat`.`Rezervacija` (
`idRezervacija` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`od` DATE NOT NULL ,
`do` DATE NOT NULL ,
`idKorisnika` INT UNSIGNED NOT NULL ,
`status` BOOLEAN NULL ,
`idVozila` INT NOT NULL ,
PRIMARY KEY (`idRezervacija`) ,
INDEX `idKorisnika` (`idKorisnika` ASC) ,
INDEX `idVozila` (`idVozila` ASC) ,
CONSTRAINT `idKorisnika`
FOREIGN KEY (`idKorisnika` )
REFERENCES `mydb`.`Korisnik` (`idKorisnik` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idVozila`
FOREIGN KEY (`idVozila` )
REFERENCES `mydb`.`Vozilo` (`idVozilo` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci

Ovo je baza podataka za vozila i rezervaciju ......

[ Nikola Poša @ 27.05.2009. 08:54 ] @
A ja tu nigde ne vidim polje koje govori da li je neko vozilo dostupno i kada... To bi možda trebalo da bude nova tabela? I onda bi posle samo na toj stranici nakon rezervacije išao neki upit:
Code:

SELECT v.* 
FROM vozilo v, vozilo_vreme vv
WHERE vv.vozilo_id = v.id AND vv.od = '$od' AND vv.do = '$do'

To $od i $do su ti datumi iz forme, a vozilo_vreme bi bila ta nova tabela u kojoj bi čuvao samo informacije o dostupnosti vozila (datume od - do).

I naravno, kad korisnik popuni tu formu, ne bi trebao te podatke odma' da upišeš u tu bazu, već da idu privremeno u neku sesiju, pa onda ako korisnik na toj sledećoj stranici pronađe i potvrdi i neku rezervaciju, onda ide upis...
[ dusan87 @ 27.05.2009. 16:34 ] @
Ne ne .. ocigledno me nisi dobro razumeo.. Ja radim sa sesijama, i pamtim ove podatke koje mi je forma prenela , i sad tipa ako sam izabrao 8 januar do 9 januara , ja trebam te podatke da proverim u bazi sa svim rezervisanim vozilima , i sva vozila koja u tom vremenskom periodu nisu zauzeeta da ih iscitam iz baze... e sad ja napravim spo select * rezervacija,vozilo WHERE idVozila=idVozilo.. ovim upitom sam dobio sve podatke o rezervisanim automobilima i naravno imam atribute (od) i (do) za svaki automobil.. Kako sad da proveravam gore navedeni datum za rezervaciju zeljenog automobila , kod svih rezervisanih automobila , da ne bi dosllo do greske da mogu da se rezervsisu jedan isti automobil a da se poklapaju datumi..
[ Milos911 @ 27.05.2009. 18:20 ] @
http://www.highlystructured.com/comparing_dates_php.html

Uz sasvim malo truda mozes ovo upotrebiti u svom slucaju. Kod se nalazi na dnu.
[ vatri @ 28.05.2009. 09:52 ] @
Evo druze ja sam pokusavao nesto, mislim da ti je to rjesenje:

Code:

SELECT DISTINCT vozilo.naziv
FROM vozilo, rezervacija
WHERE ('$od' < rezervacija.od OR '$od' > rezervacija.do) 
AND ('$do' < rezervacija.od OR '$do' > rezervacija.do)
AND rezervacija.idvozila = vozilo.idvozilo


$od i $do uzimas iz forme mora biti u obliku 'godina-mjesec-dan' (tako je kod mene u MySQL date format. Ja sam testirao i radilo je.
Javi ako ti je pomoglo, bas me zanima

P.S. bolje da si temu stavio u MySQL forum
[ dusan87 @ 28.05.2009. 18:40 ] @
Radi brate... Tnxx
Problem je resen.. :)