webForumDet fria alternativet

problem med if satsen?

6 svar · 223 visningar · startad av sven

svenMedlem sedan aug. 2001383 inlägg
#1

Håller på med ett (litet) bokningssystem men har stött på ett litet fel som jag inte kommer ut.
Så här se min kod ut:

<!-- #include file="../connectt.asp" -->

<%
Session.Contents.Remove("sorry")
ddator = Request.Querystring("dator")
ttid = Request.Querystring("tid")
namn = session("anvandareappelgren")

SQLb = "SELECT * FROM bokning WHERE ddator = '"& ddator &"' AND ttid = #"& ttid &"# AND ddatum = Date() "
set rsb = db.execute(SQLb) 
	if not rsb.EOF then
	session("sorry") = "ja"
	db.close
	set db = nothing
	Response.Redirect("publik.asp")
	else
	
	SQLa = "SELECT COUNT (*) AS antal FROM bokning WHERE namn = '"& namn &"' AND ddatum = Date() "
	set rsa = db.execute(SQLa)
		if rsa("antal") > 2 then
		session("manga") = "yes"
		db.close
		set db = nothing
		Response.Redirect("publik.asp")
		else

			Set rs = Server.CreateObject("ADODB.Recordset")
			SQL = "SELECT * FROM bokning WHERE 1=2"
			rs.Open SQL, db, 1, 2
			rs.AddNew

			rs("ddatum") = Date()
			rs("ttid") = ttid
			rs("ddator") = ddator
			rs("namn") = namn

			rs.Update
			rs.Close
			db.close
			set db = nothing
			Response.Redirect("publik.asp")
			
		end if
	end if
%>

Mitt problem är att även om första ifsatsen, som kollar om det finns en bokning, är sann så körs inserten... Så jag har väl tänkt fel i if satsen men kommer inte på hur...
Tacksam om någon kan hjälpa mig...

doggelitoMedlem sedan juni 20003 076 inlägg
#2

verkar inte vara nått fel på if-taggen, prova att skriva ut SQLb med response.write, så ser du om värderna är korrekta.

SQLb = "SELECT * FROM bokning WHERE ddator = '"& ddator &"' AND ttid = #"& ttid &"# AND ddatum = Date() "
response.write SQLb

kom ihåg bara att sätta kommentarer på övrig kod ;)

svenMedlem sedan aug. 2001383 inlägg
#3

Har testat det... och SQLb satsen ger rätt värden... det är till och med så att session sätts som den skall... vilket gör det ännu märkligare...

PS... lovar att jag skall bli bättre på att kommentera :)

svenMedlem sedan aug. 2001383 inlägg
#4

Snälla... finns det någon där ute som kan hjälpa mig... blir gammal av det här....

SPiNMedlem sedan mars 20007 896 inlägg
#5

Låter ju konstigt, för ett skript ska ju avbrytas vid en Response.Redirect. Försök med att lägga till Response.End efter din redirect, för att avbryta körningen "på riktigt". Men som sagt, den bör ju avbrytas vid en redirect.

svenMedlem sedan aug. 2001383 inlägg
#6

Testar det....

svenMedlem sedan aug. 2001383 inlägg
#7

Nepp... det hjälpte inte.
Tror att det är första if satsen som är knas... Den skall kolla om tiden är bokad... är den inte det skall man skickas vidare.

SQLb = "SELECT * FROM bokning WHERE ddator = '"& ddator &"' AND ttid = #"& ttid &"# AND ddatum = Date() "
set rsb = db.execute(SQLb) 
	
	'Kollar om tiden är bokad
	if not rsb.EOF then
	session("sorry") = "ja"
	db.close
	set db = nothing
	Response.Redirect("publik.asp")
	Response.End
	else

Nån som ser något fel?

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)