27. februar 2010 - 19:28
Der er
2 kommentarer og
1 løsning
Imellem tidspunkt.
Hejsa.
Er ved at lave et script, som skal udleje servere til folk, man har mulighed for booke serveren f.eks klokken 23 i aften, og 3 timer frem.
Men når man så skal booke den skal den tjekke om den allerede er lejet ud.
Gemmer Start & End tid som date(U) i databasen.
Men kender ikke lige en smart måde at tjekke på om der allerede er en som har lejet den. Nogle som kan hjælpe?
28. februar 2010 - 19:32
#2
Hvis du gemmer bestillinger med start- og endtid i databasen saa kan du jo, naar du faar en ny bestilling, undersoege om enten den nye bestillings starttid ligger mellem en reservations start- og endtid eller om den nye bestillings endtid ligger mellem start- og endtid for en reservation eller om en reservation ligger mellem start- og endtid for en ny bestilling. Hvis forespoergsel ikke finder en reservation saa er serveren fri.
Jeg oprettede for test en tabel hvor for hver server (hvis du har flere at leje ud) bevarer servernummer, kundenummer, starttid, og endtid. Der fyldte jeg et par vaerdier ind (se nedenfor) og saa undersoegte jeg om en ny bestilling fra 2010-03-01 17:45:00 til 2010-03-01 20:30:00 kunne gaa igennem. Jeg lavede det saaledes at hverken paa den nye bestillings starttid eller endtid er der reservationer, men der ligger en lille reservation mellem start- og endtiden paa den nye bestilling. Her er forespoergslen:
SELECT * FROM dgudiksen WHERE serverid = 1 AND "2010-03-01 17:45:00" BETWEEN starttid AND endtid OR serverid = 1 AND "2010-03-01 20:30:00" BETWEEN starttid AND endtid OR serverid = 1 AND starttid BETWEEN "2010-03-01 17:45:00" AND "2010-03-01 20:30:00" OR serverid = 1 AND endtid BETWEEN "2010-03-01 17:45:00" AND "2010-03-01 20:30:00";
og den gav dette resultat:
serverid udlejerid starttid endtid
1 7 2010-03-01 18:00:00 2010-03-01 19:30:00
saa den nye bestilling kan ikke opfyldes.
Hvordan vil du lave forespoergselerne? Med php fra en hjemmeside hvor du i en formular fylder servernummer, starttid, og sluttid ind? I saa fald vil du nok lave tre variabler og indsaette dem i forespoergslen.
Her er min tabel:
CREATE TABLE dgudiksen(serverid INT, udlejerid INT, starttid DATETIME, endtid DATETIME);
INSERT INTO dgudiksen VALUES(1, 1, "2010-03-01 12:00:00", "2010-03-01 15:30:00");
INSERT INTO dgudiksen VALUES(1, 7, "2010-03-01 18:00:00", "2010-03-01 19:30:00");
INSERT INTO dgudiksen VALUES(1, 15, "2010-03-01 22:00:00", "2010-03-02 01:00:00");
INSERT INTO dgudiksen VALUES(1, 3, "2010-03-02 04:15:00", "2010-03-01 06:30:00");