webForumDet fria alternativet
Logga in / Bli medlem

Tidsbokning

Databaser & SQL

4 svar · 607 visningar · startad av geflebo

Medlem sedan feb. 200429 inlägg
Trådstart#1

Hej.

Jag håller på ett program som man ska kunna boka tider i. Mitt problem är att det inte ska kunna gå och boka tider som redan är bokade.

Tiderna är sparade som smalldatetime(2004-03-03 15:30:00). Jag använder mig bara av halvtimmar dvs 15:00, 15:30, 16:00 osv. Tiderna är uppdelade så för att de ska kunna väljas i DropDownList och inte vara för många.

Jag tänkte att jag skulle använda mig av två SQLsatser, en för att kontrollera starttiden och en för sluttiden:

SELECT COUNT(*) FROM Tbl WHERE '2004-03-01 09:00:00' BETWEEN Starttid AND Sluttid

SELECT COUNT(*) FROM Tbl WHERE '2004-03-01 11:00:00' BETWEEN Starttid AND Sluttid

Starttid och sluttid är det som är lagrat i databasen, '2004-03-01 09:00:00' och '2004-03-01 11:00:00' är de tider som kommer från DropDownListen

Jag har dykt på två problem. Om en bokad tid slutar 10:00 så går det inte att börja en ny tid 10:00 med de SQLsatser jag använder mig av. Det andra är att det går att boka tider som ligger utanför intervallet för en tid. T ex man har bokat 09:00 - 09:30 så går det att boka en tid 08:00 till 10:00.

Någon som har en ide om hur jag skulle kunna lösa det på ett enkelt problem.

Medlem sedan dec. 20003 887 inlägg
#2

Sök lite på bokning så ska du nog hitta ett svar på din fråga. Jag vet att det har varit på tapeten ett antal gånger förut.

Medlem sedan juli 20041 271 inlägg
#3

Någon som vet om det finns ett FÄRDIGT script i php som man kan använda till "tidsbokning"? :r

Medlem sedan nov. 20014 054 inlägg
#4

Du får väl kolla om den tid de vill boka finns inom något av de intervall som finns i databasen, om de finns, Neka, om ej Godkänd!

Typ

SELECT COUNT(*) AS n 
FROM tbl WHERE start > '2003-12-31 21.00' 
AND slut < '2003-12-31 21.30'

för då bör den ta fram alla inom intervallet 2003-12-31 21.00 och 2003-12-31 21.30, exklusive själva 2003-12-31 21.00 och 2003-12-31 21.30.

Eller tänkte jag galet där? :)

Medlem sedan mars 20034 471 inlägg
#5

Om den tid du ska boka ALLTID är en halvtimme, så behöver du ju bara lagra starttider. Se till att ditt program hämtar ut ännu inte uppbokade tider att välja på genom att ange starttider som funkar. Vid val av tid kollar skriptet om någon annan hunnit boka tiden och annars lägger man in bokningen.

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)