webForumDet fria alternativet

Bokningssystem

ASP

7 svar · 428 visningar · startad av Boorg

Medlem sedan okt. 2004409 inlägg
Frågan#1

Håller på att fixa med ett bokningsystem som har en bugg...
Ifall man är inne och bokar en tjänst en dag t.ex från kl9.00 till 12.00 om man nu bokar den så går det inte för någon annan att boka den tiden.

Men ifall man har sidan uppe t.ex om jag öppnar sidan och tar väldigt lång tid på mig och någon annan går in och bokar tiden före mig och att sedan jag bokar tiden så blir det dubbelbokning.

for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next

Nu lägger scriptet in data i databasen 1 timma itaget(om ni fattar) jag skulle vilja skriva något så att den kollar innan den lägger in timman ifall det finns något där. Men det vill sig inte riktigt.

Någon som kan komma på något klurigt?

Mvh Jesper

Medlem sedan okt. 2004409 inlägg
#2

Har testat många men utan resultat :/

Här är ett exempel

for i = Starttid to Sluttid
If Not Datum = "" And i = "" then
		Response.Write Alert("Fel. Dubbelbokning")
		Response.Write "<script>history.go(-1);</script>"
End If 
next

for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next
Medlem sedan apr. 20003 174 inlägg
#3

Kolla i databasen om datumet du vill spara redan finns där.. ex:

[red]...

Set objRs = objConn.Execute("SELECT Datum FROM tbl WHERE Datum = '"& Datum &"'")
	If objRs.EOF Then
		'Ok, datumet finns inte så nu kan vi spara.
		objConn.Execute("INSERT INTO tbl(ObjektId, ResourceNo, Datum, Tid) VALUES("& ObjektID &", "& request.cookies("Anstnr") &", '"& Datum &"', "& i &")"),,128
	Else
		'Dubbebokning
	End If
	objRs.Close
Set objRs = Nothing

...[/red]

Notera att du får ändra lite beroende på Dina datatyper, objekt m.m. :)

Medlem sedan okt. 2004409 inlägg
#4

Ahh den såg inte fel ut du...
Kan man köra And i WHERE satsen? jag måste juh kolla ifall tiden på det speciella datumet är ledigt..
Annars va denna Nästan bra, Det enda med denna är att den köra alerten hela tiden :/

sql = "SELECT * FROM _Portal_bokning WHERE Datum = '" & Datum &"'"
rs.open sql, con, 1, 2

for i = Starttid to Sluttid
If Datum = Rs("Datum") And i = Rs("Tid") then
		Response.Write Alert("Fel! Dubbelbokning")
		Response.Write "<script>history.go(-2);</script>"
End If 
next

If Not Datum = Rs("Datum") And i = Rs("Tid") then
rs.close
sql = "SELECT * FROM _Portal_bokning WHERE 1 = 2 "
rs.open sql, con, 1, 2
for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next
rs.close
Else
rs.close
End If
Medlem sedan juni 200032 967 inlägg
#5

Ja, du kan ha så många villkor du vill i WHERE-satsen. Separera villkoren med AND du. :)

Medlem sedan okt. 2004409 inlägg
#6

Tackar så mycket för all hjälp (igen) :P

Medlem sedan okt. 2004409 inlägg
#7

Jag får det inte till att funka ändå!

Nu andvänder jag denna:

Set Rs = Con.Execute("SELECT Datum FROM _Portal_bokning WHERE Datum = '" & Datum & "' AND Tid =" & starttid &" OR Datum = '" & Datum & "' AND Tid = " & Sluttid & "")
	If Rs.EOF Then
' **** Addar tiderna till databasen **************************************

Rs.Close
Sql = "SELECT * FROM _Portal_bokning WHERE 1 = 2 "
Rs.open sql, Con, 1, 2
for i = Starttid to Sluttid
'	rs.AddNew
'	rs("ObjektID") = ObjektID
'	rs("ResourceNo") = request.cookies("Anstnr")
'	rs("Datum") = Datum
'	rs("Tid") = i
'	rs.update
Response.Write "Datum " & Datum & " och Starttid " & Starttid & " och Sluttid " & Sluttid & " och Tid " & i & "<br>"
next
Rs.Close
Else
' **** Ger felmedelande om det är dubbelbokning **************************

		Response.Write Alert("Fel! Dubbelbokning")
		Response.Write "<script>history.go(-2);</script>"
	End If

Och Jag vet att starttid och sluttid redan finns där. plus att jag skriver ut denna.. detta är Det som kommer in nu.

Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 6
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 7
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 8
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 9
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 10
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 11
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 12
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 13

Tid är altså typ. Klockan 6 klockan 7 osv.

Medlem sedan juni 200032 967 inlägg
#8

Om du inte fått det att funka, varför har du då accepterat ditt senaste inlägg som slutgiltigt svar :q

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)